Когда пользователь входит в учетную запись Gmail по протоколу Oauth2 и завершает его, мой сервер получает код авторизации, и я обмениваю этот код на токен обновления и токен доступа, все работает, как запланировано, но мне тоже нужно получить адрес электронной почты.Я имею в виду, если пользователь вошел как helloworld@gmail.com, каким-то образом с кодом авторизации, я хотел бы узнать этот адрес, могу ли я как-нибудь узнать его?
Это конечная точка, где я обмениваюсь кодом авторизации на токене доступа итокен обновления:
public OAuth2AccessToken oauth(String authorizationCode) {
AuthorizationCodeResourceDetails resource = new AuthorizationCodeResourceDetails();
resource.setUserAuthorizationUri(userAuthorizationUri);
resource.setAccessTokenUri(accessTokenUri);
resource.setClientId(clientId);
resource.setClientSecret(clientSecret);
resource.setPreEstablishedRedirectUri(redirectUrl);
resource.setScope(scopes);
resource.setUseCurrentUri(false);
AccessTokenRequest request = new DefaultAccessTokenRequest();
request.setPreservedState(new Object());
request.setAuthorizationCode(authorizationCode);
AuthorizationCodeAccessTokenProvider provider = new AuthorizationCodeAccessTokenProvider();
OAuth2AccessToken accessToken = provider.obtainAccessToken(resource, request);
return accessToken;
}
У меня нет WebSecurityConfigurerAdapter для OAuth2