3

我正在尝试通过 Google Open Auth 2.0 在我的 MVC 3 Web 应用程序中实现身份验证。我已经成功地形成了 URL 请求 URL,它看起来像这样:

https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/userinfo.email+https://www.googleapis.com/auth/userinfo.profile&redirect_uri= http://localhost:1291/Account/Google/&response_type=token&client_id=MY_APP_ID.apps.googleusercontent.com

我的期望是被重定向到以下 URL:

http://localhost:1291/Account/Google?access_token=VALUE&token_type=VALUE&expires_in=VALUE

但实际上我被重定向到这里:

http://localhost:1291/Account/Google#access_token=VALUE&token_type=VALUE&expires_in=VALUE

唯一的区别在于“#”和“?” 并且没有问号,我看不到查询字符串参数

4

2 回答 2

1

我尝试将“response_type”从“token”更改为“code”,“#”符号成功替换为“?” 现在我可以从查询字符串中提取“代码”。所以,这是我的错。建议将“response_type=token”与客户端 js 一起使用。更多细节在这里:

https://developers.google.com/accounts/docs/OAuth2Login(Javascript 响应部分)

于 2012-04-29T07:59:12.587 回答
0

我的应用程序中有一个类似的功能。我能看到的唯一区别是/你的尾随redirect_uri?尝试:

redirect_uri=http://localhost:1291/Account/Google

于 2012-04-28T15:49:36.320 回答