通过 Google 打开 auth 2.0 身份验证后重定向 url 无效
Posted
技术标签:
【中文标题】通过 Google 打开 auth 2.0 身份验证后重定向 url 无效【英文标题】:Invalid redirect url after open auth 2.0 authentication via Google 【发布时间】:2012-05-09 00:46:23 【问题描述】:我正在尝试通过 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
唯一的区别是“#”和“?”并且没有问号,我看不到查询字符串参数
【问题讨论】:
【参考方案1】:我尝试将“response_type”从“token”更改为“code”,并且“#”符号成功替换为“?”现在我可以从查询字符串中提取“代码”。所以,这是我的错。建议将“response_type=token”与客户端 js 一起使用。更多细节在这里:
https://developers.google.com/accounts/docs/OAuth2Login(javascript 响应部分)
【讨论】:
【参考方案2】:我的应用程序中有一个类似的功能。我能看到的唯一区别是redirect_uri
中的尾随/
?试试:
redirect_uri=http://localhost:1291/Account/Google
【讨论】:
我已经尝试过这个变种,我也尝试过显式添加问号并更改网址,例如:redirect_uri=localhost:1291/Account/Google.php 或 redirect_uri=localhost:1291/Account/Google.php? - 没有任何帮助以上是关于通过 Google 打开 auth 2.0 身份验证后重定向 url 无效的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.Auth OAuth Google API,用于Android的用户身份验证
为啥在 nuxt-auth-next 中进行 google 授权后用户未通过身份验证?
在弹出窗口中打开 Google SignIn 用户身份验证,需要使用 OAuth 2.0 在同一选项卡本身中打开
使用 Google Auth 时对 Django Rest Framework 进行身份验证