【问题标题】:Why is this access token invalid instantly?为什么此访问令牌立即无效?
【发布时间】:2016-11-19 01:56:25
【问题描述】:

场景:

  1. 创建了一个 Google+ 登录按钮供用户登录。这可行。

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

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

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

Google 响应:未经授权 - 未经授权 - 方法:GET,RequestUri:'https://www.googleapis.com/consumersurveys/v2/surveys?key={MY_API_KEY}',版本:1.1,内容:,标头:{ 接受:application/json 授权:承载 abcdefghijklmnopqrstuvqxyz123456789 } - 变化:X- Origin, Origin, Accept-Encoding X-Content-Type-Options: nosniff X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block 替代协议:443:quic Alt-Svc:quic=":443";马=2592000; v="36,35,34,33,32,31,30,29,28,27,26,25" 传输编码:分块接受范围:无缓存控制:max-age=0,私有日期: 2016 年 7 月 15 日星期五 18:10:37 GMT 服务器:GSE WWW-Authenticate: Bearer realm="https://accounts.google.com/", error=invalid_token - System.Net.Http.StreamContent

打印在页面上的 Google 访问令牌:abcdefghijklmnopqrstuvqxyz123456789

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

这个问题是我另一个问题的延伸:GET call to a Google API responds with "Unauthorized"

【问题讨论】:

    标签: c# asp.net-mvc google-api access-token


    【解决方案1】:

    我认为问题在于访问令牌(我通过 Postman 验证)需要更多范围来完全验证我的身份,这是有道理的,因为此 API 包含我尝试访问的调查,这些调查也与 Google 帐户相关联.

    更多关于向 C# 代码添加作用域的信息可以在这里找到:http://www.oauthforaspnet.com/providers/google/

    这里也有答案:Why do only OAuth 2.0 Playground access tokens work for Google API?

    【讨论】:

      猜你喜欢
      • 2012-01-21
      • 1970-01-01
      • 2019-03-10
      • 2013-01-08
      • 2021-02-19
      • 2021-12-17
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多