gpt4 book ai didi

javascript - node.js csurf 无效的 csrf token

转载 作者:搜寻专家 更新时间:2023-11-01 00:08:09 26 4
gpt4 key购买 nike

我在 express 中使用 nom 的 csurf 模块。自过去 3 天以来,一切都运行良好。现在每次我发布表单时都会收到无效的 csrf token 错误。我使用的是最新版本的 csurf 和 express。

我的 app.js 设置:

var csrf = require('csurf');
...
app.use(csrf());
...
app.use(function (req, res, next) {
res.locals = {
csrf: req.csrfToken(),...

我的 Jade 模板:

form(role='form', method='post', action='/auth')
input(type='hidden', name='_csrf', value='#{csrf}')
...
input.btn.btn-success.btn-block(type='submit')

这是我经常遇到的错误:

Error: invalid csrf token
at createToken (/Users/.../.../.../.../node_modules/csurf/index.js:107:19)
at /Users/.../.../.../.../node_modules/csurf/index.js:91:7
at Object.<anonymous> (/Users/.../.../.../.../node_modules/csurf/node_modules/csrf-tokens/node_modules/uid-safe/index.js:13:7)
at Object.ondone (/Users/.../.../.../.../node_modules/newrelic/node_modules/continuation-local-storage/node_modules/async-listener/glue.js:177:31)

据我所知,这个错误是在我启动服务器并收到“没有打开的连接”错误后出现的。

最佳答案

你试试:

在路由器中

var csrf = require('csurf');

var csrfSecured = csrf();
router.use(csrfSecured);

router.get('/auth', function(req, res, next) {
res.render('user/auth', {
...
csrfToken: req.csrfToken(),
...
}
}

在 View 中:

input(type='hidden', name='_csrf', value='#{csrfToken}')

关于javascript - node.js csurf 无效的 csrf token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24579127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com