我正在尝试在现有应用程序中启用Express 4的csrf模块。
我添加了以下代码:
var csrf = require('csurf')
...
app.use(csrf());
我已经开始申请了,我得到了:
Error: misconfigured csrf
和堆栈跟踪。没别了。
我查了一下文档,但目前还不清楚。有人可以帮忙吗?使用此模块所需的最低配置是什么?
答案 0 :(得分:31)
我找到了解决方案。必须在app.use(csrf())
AND app.use(cookieParser())
之后设置对app.use(session({...})
的调用。
答案 1 :(得分:10)
如果您将Redis用作会话存储且服务器未运行,则还会出现配置错误。
答案 2 :(得分:0)
app.use(
sessions({
cookieName: 'demo-session',
secret: 'this is a secret msg',
duration: 30 * 60 * 1000,
})
);
app.use(csurf({ sessionKey: 'demo-session' }));
当会话中间件和 csurf 中的 sessionKey 不相同时,我遇到了同样的错误。如果未提供,csurf 使用 session 作为默认 sessionKey。这里的 sessionKey 是 demo-session,在你的 session 中间件中应该是一样的。