You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask WTF提交表单提示The CSRF session token is missing错误原因是什么?

错误触发原因及修复方案

核心原因:表单提交地址不匹配

你HTML代码中表单的action属性设置为/accounting,但CSRF校验、登录表单验证的逻辑全部写在/login路由下:

  • 表单直接提交到/accounting时,该路由开启了CSRF保护但不会处理登录表单的校验逻辑
  • 未登录状态下访问/accounting如果被flask-login拦截,会直接中断请求返回CSRF校验错误

修复方式

将表单标签修改为以下任意一种即可:

<!-- 方式1:默认提交到当前页面路由 -->
<form method="POST">
<!-- 方式2:显式指定提交到登录路由 -->
<form action="/login" method="POST">

其他可能触发错误的配置问题

  • 重复初始化CSRFProtect:你同时执行了csrf = CSRFProtect(app)和csrf.init_app(app),属于冗余配置,删除其中一行即可,避免重复初始化导致的校验逻辑异常。
  • SECRET_KEY配置冲突:你同时通过app.config['SECRET_KEY']和app.secret_key两个路径配置密钥,如果两个值不一致会导致会话签名校验失败,CSRF token基于会话生成,签名不匹配就会抛出token缺失的错误,统一使用app.config['SECRET_KEY']一种方式配置即可。
  • 会话配置不匹配:如果本地调试使用http协议,但你配置了SESSION_COOKIE_SECURE = True,会导致会话cookie无法正常写入浏览器,CSRF token校验时无法读取对应会话值,也会触发该错误,本地调试时将该配置改为False即可。

内容的提问来源于stack exchange,提问作者Turtle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:06:02