別のファイル/モジュールにルートを分割するとき。 - メインエントリポイント 入手「ForbiddenError:無効なCSRFトークン」私は私の<a href="https://www.npmjs.com/package/express" rel="nofollow">express</a>プロジェクトで<a href="https://www.npmjs.com/package/csurf" rel="nofollow">csurf</a>を使用してい
- が app.js:私は3つのファイルを持っていますexpress application generatorを使用しているとき
これは、標準の決まり文句です。
input(name='_csrf', type='hidden', value='#{csrfToken}')
すべてが正常に動作して:
router.get('/', csrfProtection, function(req, res, next) { res.render('index', { csrfToken: req.csrfToken() }); });
このルートのページはCSRFトークンで隠しフィールドを持つフォームが含まれてい
:私はindex.jsでルートを持っていますソースのcsrfトークンが見えます。
フォームは、それが処理されます提出されるルート/ users.jsでルートを買う:
router.post('/login', csrfProtection, function(req, resp) { if(!validator.isAlphanumeric(req.username)) console.log('Not alphanumeric'); ... });
問題は両方のファイルが
csrf
の新しいインスタンスを作成することとは何かで表示され、csrfToken
。var csrf = require('csurf'); var csrfProtection = csrf({ cookie: true });
私はルート/ index.jsにログインルートを置く場合、それは私が多分両方のインスタンスが異なるCSRFを使用していると思う作った、正常に動作します:私はそうのようにそれらを必要とし、両方のルートファイルの先頭にトークン。
アイデア?