我们目前正在使用谷歌OpenId连接来验证我们的用户。
我正在通过描述的access token
和id token
成功地通过token_endpoint
检索这里。稍后,我将按照描述的id token
验证这里。token_endpoint
将通过发现文件 (由谷歌推荐)接收。
问题
但是几天以来,发现文档似乎有了一个新版本,因为token_endpoint
已经从
https://www.googleapis.com/oauth2/v3/token
至
https://www.googleapis.com/oauth2/v4/token
新端点返回一个稍长的id token
,不能再用https://www.googleapis.com/oauth2/v1/tokeninfo?id_token=xxx
进行验证。请求将返回错误。
{
"error": "invalid_token",
"error_description": "Invalid Value"
}
如果我硬编码token_endpoint
到旧的url (https://www.googleapis.com/oauth2/v3/token
),一切都会像以前一样正常工作。
问题
由于旧的OpenID 2.0在几天前就被关闭了,我想在关闭、新的token_endpoint
和id_token
的验证之间可能有一些关联,但是我还找不到任何东西。
有什么解决方案可以通过id token
url来验证新的稍长的https://www.googleapis.com/oauth2/v1/tokeninfo?id_token=xxx
吗?为了调试,使用tokeninfo
端点更容易,在以后的生产中,我们可能会在本地验证令牌(在C#中验证Google令牌)。
发布于 2015-04-29 04:58:33
正如您所怀疑的,invalid_token
错误是由v1/tokeninfo
中的一个问题引起的,该问题与来自v4/token
端点的修改后的ID令牌有关。该问题已经解决,令牌应该再次在tokeninfo
上正确验证。感谢您的详细帖子!
https://stackoverflow.com/questions/29916637
复制相似问题