我的注册testing与摩卡无效的csrf令牌

当我尝试运行我的注册testing时,得到“ForbiddenError:无效的csrf标记”。 我确实从我的函数中获得了一个令牌,但是我认为我错误地实现了它。 也许我必须以某种方式将其设置在标题中?

我的testing文件

var request = require('supertest'); var server = request.agent(config.TEST_URL); // function to get the csrf token from the client function extractCsrfToken (res) { var $ = cheerio.load(res.text); return $('[name=_csrf]').val(); } describe('POST /register', function () { var csrfToken; beforeEach(function (done) { server.get('/register') .end(function (err, res) { if (err) return done(err); csrfToken = extractCsrfToken(res); // fetch the csrf token from client done(); }); }); it('should accept the result', function (done, res) { server .post('/register') .send({ _csrf: csrfToken, username: 'testing', email:'mjo@test.com', password:'password' }) .expect(201) .end(done); }); }); 

这里是我的app.js会议信息的一部分

 var sessions = require('client-sessions'); app.use(sessions({ cookieName: 'session', secret: 'random secret string', })); app.use(csrf()); 

谢谢。

这个线程接受的答案帮助我解决了这个问题

如何用CSRFtesting快递单文章?