Django 403仅在登录生产环境时被禁止

mpbci0fu  于 2023-02-06  发布在  Go
关注(0)|答案(1)|浏览(140)

我有一个使用Django登录/认证的登录,一旦我发布登录请求,我会收到403 Forbidden错误,并显示以下消息:
CSRF验证失败。请求已中止。
您看到此消息是因为此站点在提交表单时需要CSRF Cookie。出于安全原因,需要使用此Cookie,以确保您的浏览器不被第三方劫持。
如果您的浏览器已设置为禁用Cookie,请重新启用它们,至少对本网站或“同源”请求。帮助失败原因:

CSRF cookie not set.

这只发生在登录时,而不发生在我的应用程序中的其他窗体上。
这是我的登录表格:

{% extends "main/base.html" %}
{% load static %}
{% load widget_tweaks %}


{% block content%}

<div class='container'>
    <div class='row pt-4'>
        <div class="col">

        </div>
        <div class="col-md-4 col-md-offset-4">
            <div class="card text-center">
                <!-- Login Form -->
                <div class="card-header bg-dark">
                    <h2 class="text-secondary">Login</h2>
                </div>
                <div class="card-body card text-left">
                    <form method="POST">
                        {% csrf_token %}
                        {% for hidden in form.hidden_fields %}
                        {{ hidden }}
                        {% endfor %}
                        {% for field in form.visible_fields %}
                        <div class="form-group">

                            <label>{{ field.label_tag }}</label>
                            {% render_field field class="form-control" %}
                            {% for error in field.errors %}
                            <span class="help-block">{{ error }}</span>
                            {% endfor %}

                        </div>

                        {% endfor %}
                        <div class="form-group">
                        <p>¿Olvidaste tú usuario o contraseña?<a href=""> Click aquí!</a></p>
                        </div>
                        <div class="form-group">

                            <button type="submit" class="btn btn-primary">Ingresar</button>

                        </div>
                    </form>
                </div>
            </div>
        </div>
        <div class="col">
        </div>
    </div>
</div>



{% endblock %}

我已经尝试了设置中的所有内容:

ALLOWED_HOSTS = ['http://*', 'https://*'] ( I have tried with the specific url)
CSRF_TRUSTED_ORIGINS = ['http://*', 'https://*'] ( I have tried with the specific url)
CSRF_COOKIE_SECURE = True (I have tried with False)
SESSION_COOKIE_SECURE = True (I have tried with False)

该功能在本地登录时运行良好。
如果在生产中,我首先访问管理员,然后回到应用程序的登录,它工作正常,但如果我关闭浏览器windonw并通过登录再次访问我得到403错误.
我使用Djano 3.2版本
浏览器检查--网络

zf9nrax1

zf9nrax11#

问题是我必须通过https://访问,而我只使用http://访问该网站

相关问题