过去几天我一直在摸不着头脑,试图找出适合这个问题的方法。
我正在使用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中成功检索时刷新会话令牌?