0

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

谷歌正在发送授权令牌,但我无法通过使用捕获令牌值

  1. 查询字符串(为空)
  2. 分割字符串(没有得到完整的 url)

重定向网址是:http://www.onfrnz.com/auth.aspx

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

请帮助我。我不想使用图书馆。提前致谢。

4

1 回答 1

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

于 2012-07-24T21:22:10.893 回答