C# 正在验证从oauth2/v4/token接收的Google OAuth id令牌
我们目前正在使用Google OpenId Connect对我们的用户进行身份验证 我正在通过C# 正在验证从oauth2/v4/token接收的Google OAuth id令牌,c#,.net,google-oauth,google-authentication,C#,.net,Google Oauth,Google Authentication,我们目前正在使用Google OpenId Connect对我们的用户进行身份验证 我正在通过token\u端点成功检索访问令牌和id令牌,如上所述。稍后,我验证id令牌,如前所述。token\u端点将通过(谷歌推荐的)接收 问题 但几天后,发现文档似乎出现了新版本,因为token\u端点已从 https://www.googleapis.com/oauth2/v3/token 到 新端点返回稍长的id标记,该标记不能再通过https://www.googleapis.com/oauth2/v
token\u端点成功检索访问令牌
和id令牌
,如上所述。稍后,我验证id令牌
,如前所述。token\u端点
将通过(谷歌推荐的)接收
问题
但几天后,发现文档似乎出现了新版本,因为token\u端点
已从
https://www.googleapis.com/oauth2/v3/token
到
新端点返回稍长的id标记
,该标记不能再通过https://www.googleapis.com/oauth2/v1/tokeninfo?id_token=xxx
。请求返回时出错
{
"error": "invalid_token",
"error_description": "Invalid Value"
}
如果我将token\u端点
硬编码到旧url(https://www.googleapis.com/oauth2/v3/token
)一切都像以前一样正常
问题
由于旧的已在几天前关闭,我认为在关闭、新的token\u端点
和id\u令牌
的验证之间可能存在某种关联,但我还没有找到任何东西
是否有任何解决方案可以通过https://www.googleapis.com/oauth2/v1/tokeninfo?id_token=xxx
url?为了调试,使用tokeninfo
端点更容易,稍后在生产中,我们可能会在本地()验证令牌。无效的\u令牌
错误是由v1/tokeninfo
中的问题引起的,与v4/token
端点的相关,正如您所怀疑的。该问题已得到解决,令牌应在tokeninfo
再次正确验证。谢谢你的详细帖子 你说得对,上周发布了一份发现文件的副本。看起来tokeninfo
中有一个bug(它实际上不是OpenID Connect的一部分,但我同意它在开发过程中是一个有用的工具)。作为一种临时解决方法,您可以返回到旧的发现文档(从而获得以前的格式id令牌),或者避免使用tokeninfo
,现在就实现本地id令牌验证。这是一个方便的在线开发工具。谢谢你的回答,是的,它似乎又起作用了。但是因为昨天我有时间,所以我实施了本地验证(正如您所建议的)。实现基于以下答案:。对于调试来说,tokeninfo
再次工作是件好事。太棒了!当您投入生产时,本地验证无疑是首选,因此您的时间花得很好:)
{
"error": "invalid_token",
"error_description": "Invalid Value"
}