【发布时间】:2012-07-13 11:34:54
【问题描述】:
我正在使用 express@3.0.0beta4 和 passport@0.1.12,并使用本地策略进行身份验证。
一切似乎都运行良好,并且正确地重定向成功和失败
app.post('/login', passport.authenticate('local', { failureRedirect: '/' }),
function(req, res) {
console.log(req.isAuthenticated()); // true
res.redirect('/users/' + req.user.id );
});
但是如果我在配置文件路由上添加 ensureAuthenticated
app.get('/users/:id', ensureAuthenticated, routes.user);
function ensureAuthenticated(req, res, next) {
console.log(req.isAuthenticated()); // false
if (req.isAuthenticated()) { return next(); }
res.redirect('/');
}
登录后它会将我重定向回“/”(即登录页面)而不是“/users/id”(用户配置文件)。问题是 req.isAuthenticated() 总是返回 false 并且 debug 中没有 req.user 变量。
是express 3和passport交互有问题还是我做错了什么?
【问题讨论】:
标签: node.js authentication express passport.js