【发布时间】:2012-11-29 17:43:02
【问题描述】:
我正在使用带有 Express 框架的 csrf 中间件。我的登录页面是这样的:
app.get('/', getUserOrLogin, function (req, res) {
// do something...
});
getUserOrLogin 在哪里:
// Return the user otherwise redirect to login page
var getUserOrLogin = function (req, res, next) {
var user = req.session.user;
if (user == null) {
req.session.backTo = req.originalUrl;
res.redirect('/login');
} else {
req.user = user;
next();
}
};
当我尝试访问 / 时,它会将我正确重定向到 /login,但未设置 cookie 中的 csrf 令牌。
我是在 getUserOrLogin 函数上做错了什么还是 Express 错误?
【问题讨论】:
-
如果将 backTo 值分配给 response 对象而不是 request 对象会怎样?
-
csrf中间件是在路由器之前定义的吗?另外,当您说 cookie 时,您是指会话吗?除非您正在做其他事情,否则 csrf 不会设置 cookie,只会设置
_csrf会话令牌。第三,你是用什么做auth的,登录路由是什么样子的?
标签: node.js redirect express csrf