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