【问题标题】:Google OAuth2 - Correct Usage?Google OAuth2 - 正确使用?
【发布时间】:2016-11-15 14:29:00
【问题描述】:

我正在开发使用 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(可能会应用其他逻辑)。

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

提前感谢您的帮助。

【问题讨论】:

    标签: google-authentication google-oauth


    【解决方案1】:

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

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

    这样您不仅可以验证令牌,还可以确保它实际上是为您的客户准备的。

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

    【讨论】:

      猜你喜欢
      • 2014-06-18
      • 2013-03-05
      • 2012-05-04
      • 1970-01-01
      • 2016-04-14
      • 2020-01-08
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      相关资源
      最近更新 更多