Google OAuth2 重定向 URI 不匹配问题
大家好,
我在尝试通过谷歌进行身份验证时遇到了一个400的错误,提示“redirect_url_mismatch”。我是在一个Django应用中使用python-social-auth来实现这个过程的。
一切都很顺利,直到我到达流程的最后阶段,遇到了redirect_uri_mismatch的问题。
在谷歌上,我收到了这个消息。
"请求中的重定向URI: http://localhost:8000/something/complete/google-oauth2/ 与注册的重定向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的截图。
我哪里做错了呢?
谢谢!
2 个回答
3
确保你在urls.py文件中添加了social-auth,像这样:
url('', include('social.apps.django_app.urls', namespace='social')),
然后在console.developers.google.com网站上,把授权重定向URI
设置为http://localhost:8000/something/complete/google-oauth2/
4
这里有一点需要注意,就是重定向的URL必须完全一致,包括最后的斜杠。在我的例子中,它是这样的:http://localhot:8000/something/complete/google-oauth2。其实应该是
http://localhot:8000/something/complete/google-oauth2/。这样就导致了重定向的URL不匹配。
另外,在控制台中为重定向的URL定义http:和https:,因为社交认证生成的重定向URL仍然会发送http,而不管你服务器的SSL设置如何。