使用django-allauth

时间:2018-08-21 19:19:49

标签: django django-allauth

我尝试按照https://wsvincent.com/django-allauth-tutorial-custom-user-model/

上的教程进行操作

我授权的所需回调URL是

https://localhost:2053/accounts/google/login/callback/

站点下,我按照以下说明填写

enter image description here

这是表格的样子

snapweb=# select * from django_site
snapweb-# ;
 id |  domain   |    name
----+-----------+-------------
  1 | 127.0.0.1 | example.com
(1 row)

我在settings.py中有以下代码

# DJANGO-ALLAUTH SETTINGS
# Site id required for using 'sites' framework with django-allauth
SITE_ID = 1    # 1 is for 127.0.0.1
ACCOUNT_DEFAULT_HTTP_PROTOCOL='https'

然后,我尝试通过单击以下链接登录Google

<p><a href="{% provider_login_url 'google' %}">Log In with Gmail</a></p>

但是,我从Google收到以下错误消息

enter image description here

似乎django-allauth传递了错误的重定向URL,没有正确的端口(https://localhost/accounts/google/login/callback/)。

正确的URL应该是

https://localhost:2053/accounts/google/login/callback/

但是django-allauth正在传递

https://localhost/accounts/google/login/callback/

我可以知道如何将正确的重定向URL传递给Google吗?


我尝试过什么?

对于Site,我尝试了各种类似的值

snapweb=# select * from django_site
snapweb-# ;
 id |  domain        |    name
----+----------------+-------------
  1 | 127.0.0.1:2053 | example.com
(1 row)

snapweb=# select * from django_site
snapweb-# ;
 id |  domain        |    name
----+----------------+-------------
  1 | localhost:2053 | example.com
(1 row)

但是,Google仍在抱怨收到https://localhost/accounts/google/login/callback/

2 个答案:

答案 0 :(得分:1)

Aniket A. Aryamane this url的评论指出了如何解决该问题:

在创建Oauth 2.0客户端ID时,请提及“授权重定向 URI”:“ http://localhost:8000/accounts/google/login/callback/” 而不是“ http://127.0.0.1:8000/accounts/google/login/callback/

2)将Django管理员-“站点”域名更新为“本地主机” 而不是“ 127.0.0.1”

然后它将按预期工作。

答案 1 :(得分:0)

据我了解,问题是Facebook,google或任何其他社交媒体登录均不支持 localhost 。您需要明确定义一个子域或特定的专用IP地址。您可以尝试使用特定的域或专用IP吗?

否则,您可以使用此网站进行开发https://tolocalhost.com/ 然后根据您的开发环境进行配置。即端口和主机名。