当用户通过Oauth2协议登录Gmail账号并完成后,我的服务器会得到授权码,我会将此代码交换为刷新令牌和访问令牌,一切都按计划进行,但我也需要获得电子邮件地址。我是说如果用户以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;
}
我没有OAuth2的Web安全配置适配器