【问题标题】:Flask already disable CSRF but self.errors still have the error "'csrf_token': ['CSRF token missing']"Flask 已经禁用 CSRF 但 self.errors 仍然有错误“'csrf_token': ['CSRF token missing']”
【发布时间】:2014-10-21 23:52:44
【问题描述】:

我有以下登录用户的视图。我正在使用 flask-wtforms 作为表单。

def login(self, username, password):
    return self.app.post('/users/login', data=dict(
    email=username,
    password=password
    ), follow_redirects=True)

我已经在我的配置中禁用了 CSRF:

class Config(object):
SECRET_KEY = .....
DEBUG = True
TESTING = True
CSRF_ENABLED = False
SQLALCHEMY_DATABASE_URI = .......

但我仍然收到错误 {'csrf_token': ['CSRF token missing']}in self.errors

这里有什么问题?

【问题讨论】:

    标签: python flask csrf flask-wtforms


    【解决方案1】:

    我在flask-wtforms的最新文档中找到了解决方案(我阅读的文档太旧了) 配置应该是 WTF_CSRF_ENABLED 而不是 CSRF_ENABLED

    【讨论】:

      【解决方案2】:

      您使用的是哪个版本的 FLask-WTF?

      在 0.9.0 版本之前,您使用 CSRF_ENABLED。 Source。版本 >= 0.9.0 使用 WTF_CSRF_ENABLED。 Source.

      【讨论】:

      • 之前用的是v0.8.3,没想到文档太旧了,现在用的是最新版
      • 那应该已经解决了。
      【解决方案3】:

      如果您使用的是 2015 年 12 月的最新版本 (v0.12),则应将 SECRET_KEY = ... 替换为 WTF_CSRF_SECRET_KEY = ...

      【讨论】:

        猜你喜欢
        • 2020-03-25
        • 2021-07-08
        • 1970-01-01
        • 1970-01-01
        • 2017-06-25
        • 2020-07-23
        • 1970-01-01
        • 2016-05-07
        • 1970-01-01
        相关资源
        最近更新 更多