(ASP.Net)google oauth2在哈希后而不是在查询字符串中返回令牌

时间:2012-05-22 15:09:36

标签: asp.net oauth google-api

我有一个项目要求ASP.Net应用程序使用谷歌凭据,因此授权在oauth 2.0中。

我已经形成了对google API的授权的有效请求,但是在哈希字符“#”之后返回响应(以及带有它的令牌)。有点像:

[示例http链接:] myredirecturi.com/oauthcallback#token=thetokenvalue ...

我所期待的是它是以查询字符串的格式,即在问号“?”之后:

[示例http链接:] myredirecturi.com/oauthcallback?token=thetokenvalue ...

我遇到此问题的原因是我无法在服务器端ASP.net中引用令牌。

要调用此请求,基本上我正在做的是对Google的网址执行Response.redirect,但似乎我认为我需要客户端响应。

所以,我的问题是,如何让google以查询字符串回复?

如果有帮助,这就是我的大部分工作基础:https://developers.google.com/accounts/docs/OAuth2Login

感谢。

1 个答案:

答案 0 :(得分:5)

在您的身份验证请求网址中,您是否设置了response_type=token?这将导致服务器返回片段中的访问令牌。这是此处描述的客户端流程:https://developers.google.com/accounts/docs/OAuth2UserAgent

如果您在网络服务器中执行OAuth(听起来像是这样),您应该使用此处描述的Web服务器流程:https://developers.google.com/accounts/docs/OAuth2WebServer - 您指定response_type=code将导致授权代码,您可以在后续请求中交换刷新令牌和访问令牌。