【问题标题】:How do I disable CSRF in Django1.7?如何在 Django 1.7 中禁用 CSRF?
【发布时间】:2014-11-04 13:42:19
【问题描述】:

似乎@csrf_exempt 在 Django 1.4 中不再起作用,我一直在尝试使用我在 StackOverflow 上找到的不同解决方案,例如删除一些中间件类或添加一个自定义类,但我无法停止收到“CSRF 验证失败”。我只需要为我的 Android 应用程序使用的登录视图禁用它。

【问题讨论】:

  • “看起来”?我不知道你从哪里得到这样的印象,但这是错误的,正如你从the 1.7 CSRF docs 看到的那样。
  • 你如何启用中间件?
  • 什么?中间件明明是开启的,否则不会验证失败。
  • 我已经在 url 本身和视图之前设置了 csrf_exempt,但我仍然收到“CSRF 验证失败”。

标签: django django-views django-csrf


【解决方案1】:

如果您使用基于类的视图,您可以使用 django-braces,它有一个 Mixin:

class UpdateProfileView(CsrfExemptMixin, LoginRequiredMixin, UpdateView):
    model = Profile

【讨论】:

  • 我没有使用基于类的视图,还有其他选择吗?
【解决方案2】:

根据this,装饰器@csrf_exempt 应该仍然可以工作

也许您的登录页面访问了多个 url,而您没有豁免所有这些?

【讨论】:

  • 我已经导入了 csrf_exempt 并在视图前添加了装饰器,但我仍然收到“CSRF 验证失败”。
  • 您的代码可能有问题。所以不可能不看就说。但这听起来像是跨越 urls.py、views.py 和 html 代码...
  • 点击多个url是什么意思?我只是将用户名和密码发送到 /login。
猜你喜欢
  • 2015-05-13
  • 2013-05-03
  • 2015-03-18
  • 2017-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-06
相关资源
最近更新 更多