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解析器可能会导致问题。”