0
솔루션에 싱글 사인을 개발 중입니다. 사용자가 Google 서비스에 액세스 할 수 있도록 사이트를 방문 할 때마다 사용자를 Google 계정에 로그인 할 수 있어야합니다. 나는 구글에서 액세스 및 새로 고침 토큰을 받고 내 데이터베이스에 저장하지만 난에 사용자가 로그인 할 때이 토큰 무엇을 모르는입니다.내 사이트를 방문 할 때 어떻게 사용자를 Google에 로그인 할 수 있습니까?
public async Task<ActionResult> IndexAsync(CancellationToken cancellationToken)
{
flowData = new AppFlowMetadata();
UsersSSOTokens userToken = GetCurrentUserToken();
if (userToken != null)
{
CheckTokenValid(userToken);
LogIntoGoogleWithToken();
}
else
if (result == null || result.Credential == null)
{
result = await new AuthorizationCodeMvcApp(this, flowData).
AuthorizeAsync(cancellationToken);
if (result.Credential == null) return new RedirectResult(result.RedirectUri);
}
return View();
}
public async Task<ActionResult> GetResult(string code, string error, string state)
{
var returnUrl = Request.Url.ToString();
returnUrl = returnUrl.Substring(0, returnUrl.IndexOf("?"));
var userId = Session["user"];
var token = await flowData.Flow.ExchangeCodeForTokenAsync(userId.ToString(), code, returnUrl,
CancellationToken.None);
if (token != null && error == null)
{
if (token.AccessToken != null && token.RefreshToken != null)
SaveToken(token.AccessToken, token.RefreshToken, token.TokenType, token.Issued, token.Scope);
}
return new RedirectResult(state);
}
API 액세스가 필요하지 않습니다. 나는 사용자가 Google에 로그인해야합니다. –