我写了node-koa2-angular应用程序。我需要像快递应用程序一样设置XSRF-TOKEN cookie:
var csrfProtection = csrf({ cookie: true })
但是在koa-csrf中我找不到这个选项,默认情况下它不会创建cookie。 谢谢你的帮助。
答案 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();
});