为什么此访问令牌会立即失效?

时间:2016-07-15 18:45:41

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

情景:

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

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

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

  4. 那么,为什么在我将访问令牌保存并打印到页面后几乎立即对GET请求的令牌无效?我是在调用错误的URI还是提供错误的参数? JUST创建了访问令牌,但我在下面看到的响应是我所看到的,包括状态代码,ReasonPhrase,RequestMessage,Headers和Content:

    Google回复:未经授权 - 未经授权 - 方法:GET,RequestUri:'https://www.googleapis.com/consumersurveys/v2/surveys?key= {MY_API_KEY}',版本:1.1,内容:,标题:{接受:申请/ json授权:Bearer abcdefghijklmnopqrstuvqxyz123456789} - 变化: X-Origin,Origin,Accept-Encoding X-Content-Type-Options:nosniff X-Frame-Options:SAMEORIGIN X-XSS-Protection:1; mode = block Alternate-Protocol:443:quic Alt-Svc:quic =“:443”; MA = 2592000; v =“36,35,34,33,32,31,30,29,28,27,26,25”Transfer-Encoding:chunked Accept-Ranges:none Cache-Control:max-age = 0,private Date:星期五,2016年7月15日18:10:37 GMT服务器:GSE WWW-Authenticate:Bearer realm =“https://accounts.google.com/”,error = invalid_token - System.Net.Http.StreamContent

    Google Access Token打印在页面上:abcdefghijklmnopqrstuvqxyz123456789

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

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

1 个答案:

答案 0 :(得分:0)

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

有关向C#代码添加范围的更多信息,请访问:http://www.oauthforaspnet.com/providers/google/

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