Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误:配置错误的csrf-Express.js_Javascript_Express_Csrf - Fatal编程技术网

Javascript 错误:配置错误的csrf-Express.js

Javascript 错误:配置错误的csrf-Express.js,javascript,express,csrf,Javascript,Express,Csrf,当我试图访问我的登录页面时,我收到错误:配置错误的csrf。我正在将csurf实现到一个路由器,但我只得到响应状态代码500 实施: let router = require("express").Router(); let PostLoginResource = require("./../resources/PostLoginResource"); let RateLimit = require("express-rate-limit"); let csrf = require("csur

当我试图访问我的登录页面时,我收到
错误:配置错误的csrf
。我正在将csurf实现到一个路由器,但我只得到响应状态代码500

实施:

let router = require("express").Router();

let PostLoginResource = require("./../resources/PostLoginResource");
let RateLimit = require("express-rate-limit");
let csrf = require("csurf");

let csrfProtection = csrf({ cookie: true });

router.route("/login")
    .get(csrfProtection, function(req, res) {
        // Do some stuff
    })

    .post(loginLimiter, function(req, res) {

        PostLoginResource(req, function(success, err) {
            // Do some stuff
        })

    });
在app.js中使用此模块之前,我正在启动会话cookie:

// Parse the request body as JSON
app.use(bodyParser.json());

// Parse the URL encoded data
app.use(bodyParser.urlencoded({extended: true}));

// Set up session-cookie
app.use(session({
    secret: "secret",
    resave: false,
    saveUninitialized: true,
    cookie: {secure: true,
        httpOnly: true,
        maxAge: 1000 * 60 * 60 * 24
    }
}));
不过,这是行不通的。有人知道问题出在哪里吗

var cookieParser = require('cookie-parser')
解析cookies 我们需要这个,因为“cookie”在csrfProtection中是真实的

app.use(cookieParser())

该路径正确吗:../../resources/PostLoginResource?是的,否则将显示错误消息,而不是错误:配置错误的csrfwell您得到了500,这意味着内部错误。不正确的语句导致该错误。您在哪里需要会话对象>注意*对app.use(csrf())的调用必须设置在app.use(cookieParser())和app.use(session({…})之后。作为express session middleware的官方描述:“自版本1.5.0以来,此模块不再需要使用cookie解析器中间件来工作。此模块现在直接在req/res上读取和写入cookie。如果此模块和cookie解析器之间的秘密不同,则使用cookie解析器可能会导致问题。”