Flask登录“remember_me”不适用于Flask-WTF CSRF

时间:2017-08-25 07:26:12

标签: flask flask-wtforms flask-login

过去几天我一直在摸不着头脑,试图找出适合这个问题的方法。

我正在使用Flask-WTF的Flask-Login。登录后,我可以通过Flask-WTF向CSRF保护表单提交所有POST请求,一切都按预期工作。

但是,如果设置了“Remember_Me”(因此在客户端放置了一个记住我的cookie)并关闭并重启我的浏览器,则在访问表单时会发生两件事:

1 - Flask Login从记住我的cookie中捕获,正确记录     in and authenticating。

2 - 尝试POST任何数据,无论是Ajax还是     通过表格,Flask-WTF无法通过CSRF验证,因为第86行     烧瓶-WTF / csrf.py

if field_name not in session:
  raise ValidationError('The CSRF session token is missing.')

这是我猜测的预期行为,因为会话令牌在理论上并不存在于记忆会话中,因为Flask-Login会从remember_me cookie中提取用户ID。

任何人都遇到过这个问题?我不知道如何对此进行排序 - 我不想禁用CSRF保护,也不想允许使用remember_me标记。

有没有什么方法可以在从cookie中成功检索时刷新会话令牌?

0 个答案:

没有答案