May*_*ank 14 django django-views django-allauth
如何从django allauth中禁用中间注销页面.当用户点击我网站上的注销链接时,我希望他立即注销,我想删除此中间页面

2018 年 12 月更新。
由于浏览器从 URL 栏中预取 url,因此使用 GET 请求可能是一个坏主意。Chrome(截至目前)对此非常不利;它会向GET它认为您enter在 URL 栏中输入时会点击的页面发送请求。
另外,人们可以添加一个链接,例如<img src="https://example.com/account/logout/">,您将被注销。这不是安全风险,因为它会将您注销,但这对您的用户来说肯定很烦人。
相反,您应该考虑使用POST带有 CSRF 的表单的请求。Django Allauth 已经提供了这个。这是<form>来自中间注销页面的内容:
<form method="post" action="{% url 'account_logout' %}">
{% csrf_token %}
{% if redirect_field_value %}
<input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}"/>
{% endif %}
<button class="STYLE_ME" type="submit">Logout</button>
</form>
Run Code Online (Sandbox Code Playgroud)
就我而言,我只是将其添加到站点标题中,并<button>使用 CSS 使提交看起来像所有其他链接,因此对他们来说感觉相同,但表单将使用 POST 请求。
但是,如果这不是您可以出于任何原因实施的解决方案,请打开您的settings.py文件(或您的主设置文件)并设置:
ACCOUNT_LOGOUT_ON_GET = True
Run Code Online (Sandbox Code Playgroud)
^ 以上设置将满足您的需求。有关进一步的 Django Allauth 设置,请查看其配置页面https://django-allauth.readthedocs.io/en/latest/configuration.html?highlight=ACCOUNT_LOGOUT_ON_GET
| 归档时间: |
|
| 查看次数: |
3026 次 |
| 最近记录: |