微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js csurf 无效的 csrf 令牌也在第一次请求时

如何解决node.js csurf 无效的 csrf 令牌也在第一次请求时

我有这种行为,我的页面执行的第一个请求也出现了 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 举报,一经查实,本站将立刻删除。