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

Masonite框架启动报错:Invalid CSRF Token问题求助

Masonite项目启动后"Invalid CSRF Token"错误排查与解决
  • 确认表单CSRF字段渲染正确
    模板里必须用Masonite内置的{% csrf_field %}标签生成CSRF令牌字段,不能手动硬编码。示例:

    <form method="POST">
        {% csrf_field %}
        <!-- 其他表单内容 -->
    </form>
    
  • 检查路由的CSRF豁免设置
    若为API或无需CSRF验证的路由,要给路由添加CSRF豁免中间件:

    from masonite.routes import Route
    
    Route.post('/api/webhook', 'WebhookController@store').middleware(['csrf.exempt'])
    

    注意:GET请求默认不需要CSRF验证,仅POST/PUT/DELETE等修改类请求需要验证。

  • 验证会话与Cookie配置

    1. 检查.env文件的SESSION_DRIVER,本地开发推荐用cookie或file驱动,确保驱动正常工作
    2. 确认APP_URL设置正确,本地开发一般为http://localhost:8000,URL不匹配会导致Cookie域名验证失败,无法读取CSRF令牌
  • 清除浏览器缓存与Cookie
    旧缓存的Cookie可能导致令牌不匹配,直接清除当前域名的Cookie,或用隐私窗口测试页面

  • 检查中间件加载顺序
    CSRF中间件依赖会话,所以CsrfMiddleware必须在SessionMiddleware之后加载。查看config/middleware.py的全局中间件顺序:

    MIDDLEWARE = [
        # 其他中间件
        'masonite.middleware.SessionMiddleware',
        'masonite.middleware.CsrfMiddleware',
        # 其他中间件
    ]
    
  • 自定义请求的令牌处理
    用Postman等工具调用接口时,需从页面源码或XSRF-TOKENCookie中获取令牌,然后在请求头添加X-XSRF-TOKEN字段,值为获取到的令牌内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 06:06:04