2016-11-15 39 views
1

我正在开发使用Google OAuth2保护的REST API(如果有问题,使用java)。该方法如下:Google OAuth2 - 正确的用法?

JSON:

{ 
    "iss": "accounts.google.com", 
    "iat": "14791197651", 
    "exp": "14795233651", 
    "at_hash": "xDLxhM85hTYU0KwU-rhPgg", 
    "aud": "541950199239-s1fag9iaes0s99g4feipe0ih0l75km1l.apps.googleusercontent.com", 
    "sub": "197763402127980067798", 
    "azp": "541950819239-s5fag9iaes9s99g4feipe0ih0l75km1l.apps.googleusercontent.com", 
    "alg": "RS256", 
    "kid": "db9e3d7cdd1b4178010f89af11cfd37400061afc" 
} 

并比较subgoogle id从请求头,

  • 如果由google id检查通过和用户是在我们的数据库中,则用户被授权使用的REST API(额外的逻辑可能适用)。

是否需要完成正确的工作流程或额外检查?

在此先感谢您的帮助。

回答

0

展望谷歌documentation,如果你要使用tokeninfo端点(你是),你只需要在id_token,然后你也

检查,澳元要求包含一绝的应用程序的客户端ID

因此,您不仅可以验证令牌,还可以确保它实际上适用于您的客户端。

Ergo,您可以从sub索赔中提取用户唯一的Google ID,无需将其与客户收到的相匹配。

+0

不错,谢谢! – user2770362