Google OAuth2 redirect_uri_mismatch问题

时间:2014-04-26 16:31:29

标签: python django google-api

全部,

尝试通过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的屏幕截图。

enter image description here

我做错了什么?

谢谢!

2 个答案:

答案 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设置如何。