3

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

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

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

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

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

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

要调用这个请求,基本上我正在做的是对 google 的 url 执行 Response.redirect,但似乎我认为我需要对它的客户端响应。

所以,我的问题是,如何让谷歌在查询字符串中做出响应?

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

谢谢。

4

1 回答 1

6

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

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

于 2012-05-22T15:14:52.797 回答