首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我不能从Django站点上的其他计算机进行身份验证?

为什么我不能从Django站点上的其他计算机进行身份验证?
EN

Stack Overflow用户
提问于 2017-02-28 16:44:32
回答 1查看 155关注 0票数 2

我已经用pythonanywhere发布了我的站点,在里面有一个简单的用户登录,我创建了一个用户,当我用自己的计算机进行身份验证时,它可以工作,但是当我使用另一台机器进行身份验证时,我会得到以下错误:

禁止(403) - CSRF验证失败。请求中止。

我的网站是发布在一个域名和其他一切都很好。有什么问题吗?

所有的设置都是正确的,使用正确的中间件、上下文、csrf保护,因为我可以用自己的计算机登录。

用代码更新 :

代码语言:javascript
运行
复制
MIDDLEWARE_CLASSES = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

login.py

代码语言:javascript
运行
复制
def login(request):
    context = {}
    if request.method == "POST":
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                auth_login(request, user)
                return redirect('login')
            else:
                context['error'] = 'L\'utilisateur a été désactivé'
        else:
            context['error'] = 'Mauvais nom d\'utilisateur ou mot de passe'

    return render(request, 'user.html', context)

user.html

代码语言:javascript
运行
复制
<form method="post" action="{% url 'login' %}">
    {% csrf_token %}
    <p>Nom :<input type="text" class="form-control" name="username"></p>
    <p>Mot de passe:<input type="password" class="form-control" name="password"></p>
    <input class="submit btn btn-success pull-right" value="Se connecter" type="submit">
</form>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-01 22:46:27

通过遵循本教程,我通过使用内置的Django登录解决了我的问题:

我没有找到为什么我的csrf检查不能工作的原因,因为控制台上没有错误,而且令牌在使用{{ csrf_token }}时显示得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42514298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档