这两天被这个 validate_on_submit 总是返回False 的问题困扰了好久,现记录下这个过程。
先在模板中加入{{ form.errors }},查看错误出自 'csrf_token': ['The CSRF tokens do not match.'] ,原因是表单中生成的Token与Session中的Token不匹配,再次查检关于Session的设置,如下:
SESSION_TYPE = "redis"
SESSION_COOKIE_SECURE = True
SESSION_USE_SIGNER = True
原来是Session使用的签名,将 SESSION_COOKIE_SECURE = True 与 SESSION_USE_SIGNER = True 去掉恢复了正常。由此可见,flask_wtf 中的CSRF验证是无法与带签名的Session匹配的。
网友评论