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