Google OAuth2 redirect_uri_mismatch 问题
Posted
技术标签:
【中文标题】Google OAuth2 redirect_uri_mismatch 问题【英文标题】:Google OAuth2 redirect_uri_mismatch Issue 【发布时间】:2014-06-12 09:09:05 【问题描述】:全部,
我在尝试通过 google 进行身份验证时收到 400 redirect_url_mismatch 错误。我正在通过 django 应用程序使用 python-socal-auth 来实现这个过程。
一切都很顺利,直到我遇到了 redirect_uri_mismatch 问题的过程的最后阶段。
在谷歌上,我收到了这条消息。
"The redirect URI in the request: http://localhost:8000/something/complete/google-oauth2/ did not match a registered redirect URI"
`Request Details
from_login=1
scope=https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile
response_type=code
redirect_uri=http://localhost:8000/something/complete/google-oauth2/
state=qT1RLLMa72F8NxFFubHwCVe3GgLDNcgZ
as=-55f896f3314b21af
pli=1
client_id=160177117398
authuser=0
hl=en`
下面是客户端 ID 重定向 URI 的屏幕截图。
我做错了什么?
谢谢!
【问题讨论】:
【参考方案1】:这里要注意的一点是,在最后一个斜杠之前,重定向 url 应该完全相同。就我而言,就像http://localhot:8000/something/complete/google-oauth2 这应该是http://localhot:8000/something/complete/google-oauth2/ 这导致了 redirect_uri_mismatch。
还要在控制台中为重定向 url 定义 http: 和 https:,因为无论服务器中的 ssl 设置如何,由社交身份验证生成的重定向 url 仍会发送 http。
【讨论】:
【参考方案2】:确保您在 urls.py 中添加了 social-auth
url('', include('social.apps.django_app.urls', namespace='social')),
在 console.developers.google.com 上将 Authorized redirect URIs
设置为 http://localhost:8000/something/complete/google-oauth2/
【讨论】:
谢谢,google-oauth2/
上的最后一个 / 是我所缺少的。以上是关于Google OAuth2 redirect_uri_mismatch 问题的主要内容,如果未能解决你的问题,请参考以下文章
Vaadin 21 Flow + Spring Security OAuth2:找不到'oauth2/authorization/google'的路由
如何将 Google Services oAuth2 转换为 Google Ads API oAuth2 访问权限
如何获取经过 Google 身份验证的用户(oauth2)的 Google 聊天(环聊)ID?
Spring 5,401 返回后带有 Google 刷新访问令牌的 OAuth2
Rest,Spring 拥有 OAuth2 服务器 + OAuth2 提供商,如 Facebook、Google、Yahoo