Google OpenID Connect:如何验证id_token?

时间:2017-01-04 10:28:41

标签: oauth-2.0 google-api google-oauth openid openid-connect

我创建后端服务器,它从移动应用程序(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令牌,并首先验证访问令牌:

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

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

1 个答案:

答案 0 :(得分:2)

首先让我说我不适合谷歌工作。然而,自2012年以来,我一直在使用Google Oauth2进行开发。不久前,我向Googler询问了这个问题。

他的建议是,如果你有一个刷新令牌,只需要一个新的访问令牌。如果它坏了,服务器将返回错误。如果您有访问令牌发送请求,如果它是坏的,服务器将返回错误。

首先验证它是非常有意义的,只需要为服务器发出的每个请求向服务器发送两个请求。您将要做的就是防止您长期在一小部分请求中出现错误。

我从未打扰过id令牌。 Id令牌是一个jwt,所以你应该能够打开它。