Google OAuth2 - 正确使用?

时间:2016-11-15 14:29:01

标签: google-oauth google-authentication google-oauth2

我正在开发使用Google OAuth2保护的REST API(如果重要的话,使用java)。方法如下:

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"  
 }  

并将sub值与请求标头中的google id进行比较,

  • 如果检查通过且google id的用户在我们的数据库中,则用户有权使用REST API(可能会应用其他逻辑)。

是否需要进行正确的工作流程或其他检查?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

查看Google documentation,如果您要使用tokeninfo端点(您是),则只需要id_token,然后您还必须

  

检查aud声明是否包含您应用的一个客户端ID

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

因此,您可以从sub声明中提取用户唯一的Google ID,无需将其与客户收到的ID进行匹配。