通过 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 进行身份验证

如果用户存在,则仅使用 Google Auth Provider 进行身份验证

使用 Google Auth、Angular 4、ASP.Net Core 2 进行身份验证时出现 405