nic*_*icq 6 openid google-api oauth-2.0 google-oauth openid-connect
我创建了Backend服务器,它从移动应用程序(iOS)获取ID令牌.如何验证此令牌是否正常并且可以安全地使用它?
官方Google有关验证令牌的文档:
https://developers.google.com/identity/protocols/OpenIDConnect#validatinganidtoken
它建议在本地验证ID令牌,而不向Google发送验证请求.可以像在文档中那样在本地检查ID Token中的某些字段,或者我是否应该向Google发送一些请求以验证令牌?
Google文档提到有关调试和验证ID令牌的方法:
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 员工这个问题。
他的建议是,如果您有刷新令牌,只需请求新的访问令牌即可。如果它不好,服务器将返回错误。如果您有访问令牌,则发送请求(如果访问令牌错误),服务器将返回错误。
首先验证它并没有多大意义,只需为您发出的每个请求向服务器发送两个请求即可。从长远来看,您要做的就是防止您发出的一小部分请求出现错误。
我从来没有关心过 id 令牌。Id 令牌是一个 jwt,所以我认为你应该能够打开它。
您应该咨询验证 id 令牌的完整性。
您也可以自己做一些检查。如果您解密或通过调用 tokeninfo 端点,则id 令牌是一个jwt
{
"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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1309 次 |
| 最近记录: |