我尝试按照https://wsvincent.com/django-allauth-tutorial-custom-user-model/
上的教程进行操作我授权的所需回调URL是
https://localhost:2053/accounts/google/login/callback/
在站点下,我按照以下说明填写
这是表格的样子
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收到以下错误消息
似乎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/
答案 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/ 然后根据您的开发环境进行配置。即端口和主机名。