gpt4 book ai didi

oauth-2.0 - 谷歌 OpenID 连接 : How to verify id_token?

转载 作者:行者123 更新时间:2023-12-04 15:40:51 30 4
gpt4 key购买 nike

我创建了后端服务器,它从移动应用程序 (iOS) 获取 ID token 。如何验证此 token 是否正常并可安全使用?

关于验证 token 的官方 Google 文档:

https://developers.google.com/identity/protocols/OpenIDConnect#validatinganidtoken

建议在本地验证 ID Token,不要向 Google 发送验证请求。是否可以像文档中一样在本地检查 ID Token 中的某些字段,或者我是否应该向 Google 发送一些请求以验证 token ?

谷歌文档提到调试和验证 ID token :

https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=XYZ123

但不建议在生产中使用它。我还考虑过使用 Access Token 和 Id Token 并首先使用以下方法验证 Access Token:

https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=

但它是否使验证客户端凭据(移动应用程序、Web 应用程序)的整个过程更加安全?

最佳答案

拳头让我先说我不为谷歌工作。然而,我从 2012 年开始就一直在使用 Google Oauth2 进行开发。不久前,我问了一个 Google 员工这个问题。
他的建议是,如果您有刷新 token ,只需请求一个新的访问 token 。如果它坏了服务器将返回一个错误。如果您有访问 token ,则发送请求,如果它不好,服务器将返回错误。
首先验证它并没有多大意义,您只需为您发出的每个请求向服务器发送两个请求。从长远来看,您要做的就是防止一小部分请求出现错误。
我从来没有为 id token 烦恼过。 Id token 是一个 jwt,所以我认为你应该能够打开它。
更新
您应该咨询Verifiy the integrity of the id token .
你也可以自己做一些检查。 id token 是 jwt如果你解密它,你会得到或通过 calling the tokeninfo endpoint

{
"iss": "https://accounts.google.com",
"azp": "407408718192.apps.googleusercontent.com",
"aud": "407408718192.apps.googleusercontent.com",
"sub": "11720055326",
"at_hash": "HQVaIRLqmsjaTt8KoOIQ",
"name": "Linda Lawton",
"picture": "https://lh3.googleusercontent.com/a-/AAuE7mDuIWqXzrrp-65cIhXSD2HjCI8WYsWHR0fDx5_wQPY=s96-c",
"given_name": "Linda",
"family_name": "Lawton",
"locale": "en",
"iat": 1567751,
"exp": 1567755
}
  • iss 应该是 https://accounts.google.com
  • aud 将是您的应用程序的客户端 ID 7408718192.apps.googleusercontent.com
  • at_hash 可能还有一些方法可以对此进行验证,但我没有打扰
  • 关于oauth-2.0 - 谷歌 OpenID 连接 : How to verify id_token?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41461581/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com