错误:配置错误的csrf - Express JS 4

时间:2014-06-02 14:58:23

标签: javascript node.js express csrf

我正在尝试在现有应用程序中启用Express 4的csrf模块。

我添加了以下代码:

var csrf = require('csurf')
...

app.use(csrf());

我已经开始申请了,我得到了:

Error: misconfigured csrf

和堆栈跟踪。没别了。

我查了一下文档,但目前还不清楚。有人可以帮忙吗?使用此模块所需的最低配置是什么?

3 个答案:

答案 0 :(得分:31)

我找到了解决方案。必须在app.use(csrf()) AND app.use(cookieParser())之后设置对app.use(session({...})的调用。

答案 1 :(得分:10)

如果您将Redis用作会话存储且服务器未运行,则还会出现配置错误。

https://github.com/expressjs/csurf/issues/73

答案 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 中间件中应该是一样的。