public async Task <IActionResult> SigninCallback()
        {
            _log.Info("Start getting user session.");
            var userSession = await _userSessionManager.GetUserSession();

            if (userSession == null)
            {
                _log.Warning(SessinNotExistMessage);
                return(BadRequest(SessinNotExistMessage));
            }

            var authCode = HttpContext.Request.Query["code"];

            var tokens = await GetTokens(authCode, _ironcladSettings.AuthClient, Url.AbsoluteAction("SigninCallback", "Callback"));

            var userId = GetUserId(tokens.IdentityToken);

            var authResult = await _clientSessionsClient.Authenticate(userId, "hobbit");

            SaveAuthResult(userSession, authResult);

            SaveTokensToUserSession(userSession, tokens);

            await SaveLykkeSession(authResult.SessionToken, tokens);

            await _userSessionManager.SetUserSession(userSession);

            var query = GetAuthorizeQueryAsync(userSession);

            var redirectUri = BuildFragmentRedirectUri(query, tokens);

            _log.Info("Redirecting to client app redirect uri. RedirectUri:{RedirectUri}", redirectUri);
            return(Redirect(redirectUri));
        }
        private async Task SaveAuthorizeQueryString(string query)
        {
            var userSession = new UserSession.UserSession();

            userSession.Set("AuthorizeQueryString", query);
            await _userSessionManager.SetUserSession(userSession);
        }