为什么此访问令牌立即无效

本文关键字:无效 访问令牌 为什么 | 更新日期: 2023-09-27 17:57:05

场景:

  1. 为用户创建了一个Google+登录按钮以登录。 这行得通。

  2. 保存访问令牌并将其打印在索引/主页上,以确保访问令牌确实存在。 这行得通。

  3. 尝试使用相同的令牌来授权用户帐户(在本例中为我的帐户)对 Google API 进行授权调用。这一直以"invalid_token"响应。

那么,为什么在我保存并打印出页面的访问令牌后,令牌对于几乎立即发出的 GET 请求无效?我是否调用了错误的 URI 或提供了错误的参数?访问令牌刚刚创建,但我在下面得到的响应是我看到的,其中包括状态代码、原因短语、请求消息、标头和内容:

谷歌响应: 未经授权 - 未经授权 - 方法: GET, 请求 Uri: 'https://www.googleapis.com/consumersurveys/v2/surveys?key={

MY_API_KEY}', 版本: 1.1, 内容: , 标头: { 接受: application/json 授权: Bearer abcdefghijklmnopqrstuvqxyz123456789 } - 变化: X 源, 起源, 接受编码 X-内容类型-选项: nosniff X-帧选项: 同源 X-XSS-保护: 1; 模式=块 备用协议: 443:quic Alt-SVC: quic=":443"; ma=2592000; v="36,35,34,33,32,31,30,29,28,27,26,25" 传输编码:分块 接受范围:无 缓存控制:最大年龄 = 0,私有 日期:2016 年 7 月 15 日星期五 18:10:37 GMT 服务器:GSE 万维网身份验证:持有者领域="https://accounts.google.com/",错误=invalid_token - System.Net.Http.StreamContent

Google Access Token 打印在页面上: abcdefghijklmnopqrstuvqxyz123456789

我只是想做的是对 Google API 进行授权调用,为此,我必须发出 GET 请求并指定我的 API KEY,并提供一个访问令牌(与打印的令牌匹配),但当我这样做时,它说invalid_token且未经授权。 为什么一直这么说?

这个问题是我另一个问题的扩展:对Google API的GET调用以"未经授权"响应

为什么此访问令牌立即无效

我相信问题是访问令牌(我通过邮递员验证)需要更多的范围才能完全验证我,这是有道理的,因为此 API 包含我正在尝试访问的调查,这些调查也链接到 Google 帐户。

有关向 C# 代码添加作用域的详细信息,请参阅此处:http://www.oauthforaspnet.com/providers/google/

这里也回答了这个问题:为什么只有OAuth 2.0 Playground访问令牌适用于Google API?