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); }