无法使用QueryString访问access_token值(Google OAuth 2.0)

时间:2012-07-23 15:17:54

标签: oauth-2.0

我无法从ASP.Net(C#)中的QueryString中获取access_token值。

Google正在发送授权令牌,但我无法使用

捕获令牌值
  1. QueryString(变为空)
  2. 拆分字符串(未获取完整网址)
  3. RedirectUrl是:http://www.onfrnz.com/auth.aspx

    http://www.onfrnz.com/auth.aspx#state=/profile
        &access_token={ACCESS_TOKEN}
        &token_type=Bearer
        &expires_in=3600 
    

    请帮我解决这个问题。我不想使用图书馆。提前谢谢。

1 个答案:

答案 0 :(得分:3)

您正在尝试访问服务器端代码中的哈希片段值。散列片段值(在URL中的#之后)不会从Web浏览器发送到Web服务器,因此无法在服务器端代码中访问。

当您最初启动OAuth流程时,您可能会使用:

&response_type=token

这表示您希望将流用于客户端(JavaScript)应用程序(在规范中称为“隐式”流程)。

相反,你应该使用:

&response_type=code

这将在查询参数中返回授权code值,您应该能够使用.NET代码检索该值,然后通过向Google发送服务器到服务器请求来交换访问令牌

有关用于Web服务器应用程序的Google OAuth 2.0流程(授权代码流程)的更多信息,请访问:

https://developers.google.com/accounts/docs/OAuth2WebServer