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

发送POST请求时遭遇无效CSRF Token错误,寻求解决方案

问题分析与解决方法

你遇到的403 invalid csrf token 错误,核心原因是/restore路由被CSRF校验中间件拦截,而GET请求默认无需携带CSRF Token,因此触发了校验失败逻辑。

可行解决方案:

1. 调整路由与CSRF中间件的挂载顺序

确保/restore路由在CSRF中间件之前挂载,让该请求跳过CSRF校验:

// 先挂载restore路由
app.use('/api/your-path', require('./routes/restore'));
// 再挂载CSRF中间件
app.use(csrf({ cookie: true }));
// 其他业务路由...

2. 配置CSRF中间件忽略指定请求

如果无法调整挂载顺序,可通过自定义逻辑让CSRF中间件跳过/restore路由:

const csrf = require('csurf');
const csrfProtection = csrf({ cookie: true });

// 全局中间件中添加忽略规则
app.use((req, res, next) => {
  if (req.path.includes('/restore')) {
    return next();
  }
  csrfProtection(req, res, next);
});

3. 检查Session/Cookie中间件配置

req.csrfToken()依赖Session或Cookie存储CSRF密钥,确认express-session等Session中间件在CSRF中间件之前正确启用,否则生成的Token无法与服务端密钥匹配,导致校验失败。

快速验证

临时在/restore路由中打印生成的Token,同时查看服务端Session存储的CSRF密钥,确认两者关联逻辑正常。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 23:15:20