相关疑难解决方法(0)

django admin登录突然要求csrf令牌

几分钟前我很容易登录我的django管理控制台.我必须在以超级用户身份登录时导致此错误的某些地方进行了更改:

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

这个错误让我措手不及,因为我整晚都在登录.为什么我突然需要一个用于管理员登录的csrf令牌?你会认为签到表格已经有了.这是我的admin.py:

from django.contrib import admin
from accounts.models import Image, Category, UserProfile

class ImageAdmin(admin.ModelAdmin):
    list_display    = ["__unicode__", "title", "created"]

admin.site.register(Image, GenericImageAdmin)

class CategoryAdmin(admin.ModelAdmin):
    list_display    = ["category"]

admin.site.register(Category, CategoryAdmin)

admin.site.register(UserProfile)
Run Code Online (Sandbox Code Playgroud)

django

17
推荐指数
3
解决办法
1万
查看次数

响应头和浏览器cookie中csrf令牌的值不同.在django 1.9中csrf验证失败

大多数SO答案都要求清除cookie并确认中间件类.我已经尝试过了.

Python - 3.4
Django - 1.10
使用VirtualEnv.

Forbidden (403) CSRF verification failed. Request aborted.在Django管理员登录屏幕上收到错误.我用django 1.9版在pythonanywhere.com上托管了我的网站.

  • 我已经清除了浏览器cookie.他们都是.
  • 我重新加载了登录屏幕.获取请求.
  • 在浏览器cookie中,到目前为止是空的,我的网站已经设置了一个值,其中csrf值为= XPp5hAhylAkt27U4SzGPNU7w8SFBJ3RP 在此输入图像描述
  • 在响应标头中,设置cookie与cookie值=一起发送UT24544MghHLZi0IrGHQlCcpk1v0SbCy .表单的源代码中提供了相同的值. 在此输入图像描述
  • 现在我输入了用户名和密码,然后单击登录按钮.
  • 收到403错误CSRF验证失败.请求中止.
  • 我重新检查了csrf令牌的所有值.
  • 在请求标头CSRF cookie值= XPp5hAhylAkt27U4SzGPNU7w8SFBJ3RP 在此输入图像描述
  • 在表单数据中csrf values = UT24544MghHLZi0IrGHQlCcpk1v0SbCy 在此输入图像描述

  • 我已经在中间件类中使用了'django.middleware.csrf.CsrfViewMiddleware'.我清除了浏览器缓存和cookie.甚至重新启动了系统.

我在完全正常工作的不同网站上使用了完全相同的代码.

为什么有不同的csrf-token值?这个问题的解决方案是什么?

更新1:如果我在设置中设置debug = False,它可以正常工作.但是我不能保持它代码是活的.

更新2:经过进一步调查后,我发现某些浏览器cookie csrftoken的值未设置为正确的值,而该值正在响应头中传递.如果我从浏览器中删除cookie并将其从控制台设置为正确值,则发布请求可以正常工作.

更新3:现在我的网络应用程序上的每个帖子请求或表单提交都会发生同样的问题.响应头和源代码中发送的CSRF令牌值与浏览器cookie中设置的值不同.

更新4:设置CSRF_COOKIE_NAME ="csrf_token"也没有帮助.

django cookies django-admin

5
推荐指数
1
解决办法
2205
查看次数

标签 统计

django ×2

cookies ×1

django-admin ×1