簡體   English   中英

node.js csurf無效的csrf令牌

[英]node.js csurf invalid csrf token

我正在使用nom的csurf模塊和express。 自從過去3天以來,一切都運轉良好。 現在,每次發布表單時,我都會收到無效的csrf令牌錯誤。 我正在使用最新版本的csurf和express。

我的app.js設置:

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

我的玉模板:

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(),
        ...
    }
}

在視圖中:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM