CSRF 令牌丢失或 Django 无效

CSRF token missing or invalid Django

我之前 运行 遇到过这个问题并解决了它,但这完全是随机弹出的(或者看起来是这样)。离开 Django 项目一段时间后,我刚刚回到我的 Django 项目...登录时,我忘记了我的网络用户名,它给了我相应的错误消息 Sorry, that's not a valid username or password。所以为了解决这个问题,我创建了一个新的超级用户(因为我也忘记了我的管理员用户名)所以我可以检查我的网络用户名是什么。我成功地做到了这一点,但是现在当我尝试登录时出现 CSRF 错误(无论用户名或密码是否正确)。我不知道这是怎么发生的,因为它在 10 秒前正确验证并且我没有更改任何一行代码。

{% extends "base.html" %}

{% block content %}

    <title>{% block title %} | Login{% endblock %}</title>

    <h2>Login</h2>

    {% if form.errors %}
        <p class="error">Sorry, thats not a valid username or password</p>
    {% endif %}

    <form action="/accounts/auth/" method="POST">{% csrf_token %}
        <label for="username">Username: </label>
        <br>
        <input type="text" name="username" value="" id="username">
        <br><br>
        <label for="password">Password: </label>
        <br>
        <input type="password" name="password" value="" id="password">
        <br><br>
        <input type="submit" value="Login">
    </form>

{% endblock content %} 

出于安全考虑,登录时会更改 CSRF 令牌 ('rotated')。如果您在选项卡 A 中打开一个页面,然后在选项卡 B 中登录,然后尝试在选项卡中提交表单A,你会得到一个CSRF错误,因为Tab A中的CSRF token已经过时了。

刷新选项卡 A 时,将加载新的 CSRF 令牌,错误将停止。