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

(ASP.Net)google oauth2在哈希之后而不是在查询字符串中返回令牌,asp.net,oauth,google-api,Asp.net,Oauth,Google Api,我有一个项目需要ASP.Net应用程序才能使用google凭据,因此授权在oauth 2.0中 我已经对google的API形成了一个有效的授权请求,但是响应(以及带有它的令牌)在散列字符“#”之后返回。有点像: [sample http link:]myredirecturi.com/oauthcallback#token=thetokenvalue 我所期望的是它是以查询字符串的形式出现的,即在问号“?”之后: [示例http链接:]myredirecturi.com/oauthcallba

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

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

[sample http link:]myredirecturi.com/oauthcallback#token=thetokenvalue

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

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

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

要调用这个请求,基本上我所做的就是做一个Response.redirect到google的url,但它似乎认为我需要一个客户端响应

所以,我的问题是,我如何让谷歌在询问中做出回应

如果有帮助,这就是我大部分工作的基础:


谢谢。

在您的身份验证请求URL中,您是否设置了
response\u type=token
?这将导致服务器返回片段中的访问令牌。这是此处描述的客户端流程:


如果您在web服务器中执行OAuth(听起来像是这样),您应该使用这里描述的web服务器流:--您指定
response\u type=code
,这将产生一个授权代码,您可以在后续请求中交换刷新令牌和访问令牌。

是的,我使用的是response\u type=token。我正在跟踪您为Web服务器流发送的链接。正如我所说,我是通过Response.Redirect(谷歌的url)实现的。但是由于某些原因,响应在散列之后具有令牌,而不是Web服务器链接提到的查询字符串格式中的令牌,而不是
response\u type=code
,而不是
token
。当使用客户端(又名隐式授权)流时,在片段中而不是在查询字符串中指定令牌是符合规范的:--如果您正在发出OAuth请求,并且需要在服务器中获取令牌,则应该使用Web服务器流。噢,哇,我完全错过了这一点,我从客户端流复制了它。因此,我将其更改为response_type=code,现在它使用querystring进行应答。谢谢你,先生。