0
私のアプリでは、official docsのコードを持っていますが、1つの違いを除いて:私はGETではなくPOSTリクエストに応答してxsrfTokenを送信します。ExpressでPOSTリクエストでcsrfTokenを取得する方法はありますか?
var cookieParser = require('cookie-parser')
var csrf = require('csurf')
var bodyParser = require('body-parser')
var express = require('express')
// setup route middlewares
var csrfProtection = csrf({ cookie: true })
var parseForm = bodyParser.urlencoded({ extended: false })
var app = express()
// we need this because "cookie" is true in csrfProtection
app.use(cookieParser())
app.post('/getCsrfToken', /*csrfProtection,*/ function (req, res) {
// check credentials from request.body
// and then
res.render('send', { csrfToken: req.csrfToken() }) //EXCEPTION: csrfToken is not a function
})
app.post('/process', parseForm, csrfProtection, function (req, res) {
res.send('data is being processed')
})
私は卵鶏の問題に直面している:私はcsrfProtectionを有効にした場合、私はトークンなしでエンドポイントのコードに取得することはできませんが、私はそれを無効にした場合、req.csrfTokenは不定となります。
urlパラメータとしてパスワードを公開しないため、gerCsrfTokenエンドポイントをPOSTにする必要があります。