问题描述
我有这种行为,我的页面执行的第一个请求也出现了 EBADCSrftOKEN 错误。
据我所知,在第一个请求中,服务器应该只生成 CSRF 令牌,而不是与它获得的令牌进行比较,因为在第一次请求时客户端还没有令牌。
我仅使用 REST API(不呈现任何视图),因此在第一个请求中我返回正文中的 req.csrftoken()。
我的代码:
const app = express();
app.use(express.static(path.join(__dirname,'public')));
app.use(function (req,res,next) {
// check origin...
....
....
next();
});
app.use(bodyParser.json({limit: '140kb'}));
app.use(bodyParser.urlencoded({extended: false}));
app.use(cookieParser());
const csrfProtection = csrf({cookie: true},ignoreMethods: ['HEAD','OPTIONS']});
app.use(csrfProtection);
app.use("/app-manager/",routes);
而且我在上面提到过,在第一个请求中,我返回正文中的 req.csrftoken(),客户端应该在下一个请求中将其发送回来。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)