Итак, я следовал этому учебному пособию, и мой внешний SPA получал только код авторизации.
Затем я отправляю этот код в свое внутреннее действие API.
public async Task<IActionResult> GoogleSignIn(GoogleSignInputModel model)
{
using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read))
{
var clientSecrets = GoogleClientSecrets.Load(stream).Secrets;
var initializer = new GoogleAuthorizationCodeFlow.Initializer { ClientSecrets = clientSecrets, Scopes = new []{"profile", "email"} };
var googleAuthorizationCodeFlow = new GoogleAuthorizationCodeFlow(initializer);
var token = await googleAuthorizationCodeFlow.ExchangeCodeForTokenAsync("user", model.Code,
"https://localhost:44389", CancellationToken.None);
}
// Get claims from token
return Ok("Success");
}
Я получаю токен типа Google.Apis.Auth.OAuth2.Responses.TokenResponse
, где я могу получить token.IdToken
- токен JWT от Google.
Вопрос
Как получить по электронной почте и основные требования из этого токена, чтобы яможно зарегистрировать или получить пользователя в моем поставщике членства?