我使用护照js来验证请求,但在我的应用程序中,我需要维护两种不同类型的会话,一种用于管理员用户,一种用于普通用户,因此如果管理员登录,则应维护会话,如果一个用户登录,那么会话应该单独维护,现在我正在使用两个护照策略,一个用于用户,另一个用于admin_user但是我从req.session.passport.user获得的会话是那个登录到最后,有没有办法让它分离像req.session.passport.admin和req.session.passport.user这样的东西?现在我的策略如下所示。
passport.use('admin', new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
function(email, password, done) {
var adminflag = 'admin';
db.adminUser.find({ where: { email: email }}).success(function(user) {
if (!user) {
done(null, false, { message: 'Unknown user' });
} else if (!user.authenticate(password)) {
done(null, false, { message: 'Invalid password'});
} else {
console.log('Login (local) : { id: ' + user.id + ', username: ' + user.username + ' }');
done(null, user);
}
}).error(function(err){
done(err);
});
}
));
passport.use('user', new LocalStrategy({
usernameField: 'email',
passwordField: 'password'
},
function(email, password, done) {
var userflag = 'user';
db.User.find({ where: { email: email }}).success(function(user) {
if (!user) {
done(null, false, { message: 'Unknown user' });
} else if (!user.authenticate(password)) {
done(null, false, { message: 'Invalid password'});
} else {
console.log('Login (local) : { id: ' + user.id + ', username: ' + user.username + ' }');
done(null, user);
}
}).error(function(err){
done(err);
});
}
));