跳过 Django Allauth“您即将使用 Google 的第三方帐户登录”页面

问题描述 投票:0回答:3

当用户单击“使用 Google 登录”时,如何跳过页面并自动登录。

python django django-allauth
3个回答
18
投票
SOCIALACCOUNT_LOGIN_ON_GET=True

(默认情况下为

False
)。根据
https://django-allauth.readthedocs.io/en/latest/configuration.html

SOCIALACCOUNT_LOGIN_ON_GET(=假)

控制是否发起社交登录的端点 (例如,“/accounts/google/login/”)需要 POST 请求 发起握手。出于安全考虑,强烈 建议要求 POST 请求。


16
投票
django-allauth

中的“您即将使用 Google 的第三方帐户登录”页面,您可以使用表单通过 请求直接启动登录过程。这被认为更安全,因为它可以防止 CSRF 攻击。这是您提供的代码片段: <form action="{% provider_login_url 'google' %}" method="post"> {% csrf_token %} <button type="submit">SIGN IN WITH GOOGLE</button> </form>

或者,您可以在配置中设置 
SOCIALACCOUNT_LOGIN_ON_GET=True

,但由于安全风险(包括潜在的 开放重定向攻击),不建议这样做。有关为什么在登录请求中首选 POST 而不是 GET 的更多信息,请参阅 django-allauth

 文档和 Google 关于开放重定向滥用的博客文章
感谢

Niko Chaffin在他的评论中提供有用的信息。


5
投票
SOCIALACCOUNT_LOGIN_ON_GET=True

© www.soinside.com 2019 - 2024. All rights reserved.