全部,
尝试通过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的屏幕截图。
我做错了什么?
谢谢!
答案 0 :(得分:3)
确保您将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/
答案 1 :(得分:2)
这里要注意的一点是,重定向url应该完全相同,直到最后一个尾部斜杠。就我而言,就像http://localhot:8000/something/complete/google-oauth2
这应该是
http://localhot:8000/something/complete/google-oauth2/
这导致了redirect_uri_mismatch。
还在控制台中为重定向网址定义http:和https:,因为社交身份验证生成的重定向网址仍会发送http,而不管服务器中的ssl设置如何。