Express 3.x 的 csrf 怎么搞?
 发布于 13 年前  作者 alexbian  7413 次预览  最后一次回复是 12 年前  来自  

RT。发现3.X里面删掉了这一方法,找了个中间件express-csrf还是基于2.X的。

请问哪位做过的呀,谢谢!

6 回复
czing
 app.use(express.csrf());
 app.use(function(req,res,next){
      res.locals.token = req.session._csrf;
      next()
  });
alexbian

谢谢,刚刚查到了!

alexbian

查到了,原来用法不一样了。

var express = require('express');

app.configure(function(){
  ...
  app.use(express.csrf());
});

这个中间件需要session支持,因此它的代码应该放在session()之后.

alexbian

防跨站攻击

jyg0124
        //cookie
        app.use(express.cookieParser());
        //session
        app.use(express.session({
            secret:config.session_secret,
            store: new mongoStore({
                url: config.mongodb,
                collection : 'sessions'
            })
        }));
        
        app.use(express.csrf());
        
        app.use(function(req, res, next){
            res.locals.req = req;
            res.locals.session = req.session;
            res.locals.csrf = req.session ? req.session._csrf : ''
            next();
        });

我的_csrf一直在变化着的呢?我看cnodejs网站和其他网站,都没变化,求解。。