如何在koa2应用程序中设置XSRF-TOKEN cookie?

时间:2017-05-03 08:19:22

标签: javascript csrf koa

我写了node-koa2-angular应用程序。我需要像快递应用程序一样设置XSRF-TOKEN cookie:

var csrfProtection = csrf({ cookie: true })

但是在koa-csrf中我找不到这个选项,默认情况下它不会创建cookie。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

您确认koa-csrf不会创建Cookie。相反,它会在ctx.session处对koa上下文中的cookie进行内省。查看code中发生这种情况的位置。

您需要添加其他中间件(如koa-session)来创建Cookie。您的实现应该类似于:

const session = require('koa-session');
const CSRF = require('koa-csrf');

// set the session keys and add session support    
app.keys = ['secret']
app.use(session({}, app))

// add the CSRF middleware
app.use(new CSRF());

// your middleware here (e.g. parse a form submit)
app.use((ctx, next) => {
  if (ctx.method === 'GET') {
    ctx.state.csrf = ctx.csrf;
  }
  return next();
});