我正在使用passportjs来表达我的快递申请:
我在同一个项目中构建了管理员和用户功能。
我已成功为用户实施身份验证,现在我正在尝试管理员。
我被困在会话序列化&反序列化:
//use to serialize the user for the session
passport.serializeUser(function(user, done) {
done(null, user.id);
});
//use to deserialize the user
passport.deserializeUser(function(id, done) {
models.User.find(id)
.success(function(user){
done(null, user);
}).error(function(err){
done(new Error('User ' + id + ' does not exists'));
});
});
如何创建另一个序列化&为管理员反序列化?
答案 0 :(得分:2)
使用passport.js,您只能定义一个serializeUser
和deserializeUser
函数 - 不需要为每种类型的用户分别使用。
相反,您应该建模您的用户模型,以便在某处有一个权限标记,例如User.is_admin或其他东西 - 这就是您应该如何区分用户类型。如果你这样做,你可以继续使用相同的序列化的东西护照。
稍微不相关的说明,如果你正在寻找一种更简单的方法来做auth的东西,你可能想看看express-stormpath - 我是它的作者,所以我很偏颇,但它提供了一种更简单的用户集成形式以及权限/组。