我有一个项目,需要一个 ASP.Net 应用程序来使用谷歌凭据,所以授权是在oauth 2.0中。
我已经形成了对谷歌 API 的有效授权请求,但响应(以及带有它的令牌(在哈希字符"#"之后返回。 有点像:
[示例 http 链接:] myredirecturi.com/oauthcallback#token=thetokenvalue...
我所期望的是它的格式为查询字符串,即在问号"?"之后:
[示例 http 链接:] myredirecturi.com/oauthcallback?token=thetokenvalue...
我遇到问题的原因是我无法在服务器端 ASP.net 中引用令牌。
要调用此请求,基本上我正在做的是执行Response.redirect到google的url,但它似乎认为我需要客户端响应它。
所以,我的问题是,如何让谷歌在查询字符串中响应?
如果有帮助,这就是我大部分工作的基础:https://developers.google.com/accounts/docs/OAuth2Login
谢谢。
在您的身份验证请求 URL 中,您是否设置了response_type=token
?这将导致服务器在片段中返回访问令牌。这是下面描述的客户端流:https://developers.google.com/accounts/docs/OAuth2UserAgent
执行 OAuth(听起来确实如此(,则应使用此处所述的 Web 服务器流: https://developers.google.com/accounts/docs/OAuth2WebServer -- 指定response_type=code
,这将生成一个授权代码,您可以在后续请求中交换该代码以交换刷新令牌和访问令牌。