【发布时间】:2020-04-05 01:34:12
【问题描述】:
在passport js认证时反序列化用户我有以下疑问?
我可以使用不同的登录表来获取用户吗?(取决于他们是管理员还是学生) 但是我试图通过使用不起作用的 if 语句来实现它,这意味着无法从数据库中获取。我在做什么任何帮助!
【问题讨论】:
-
使用权限而不是表。你可以使用。只需拨打 2 个电话
标签: node.js express authentication passport.js
在passport js认证时反序列化用户我有以下疑问?
我可以使用不同的登录表来获取用户吗?(取决于他们是管理员还是学生) 但是我试图通过使用不起作用的 if 语句来实现它,这意味着无法从数据库中获取。我在做什么任何帮助!
【问题讨论】:
标签: node.js express authentication passport.js
使用 LocalStrategy 你可以使用它。在这里,您必须进行两次不同的调用才能进行检查。
示例:
passport.use(new LocalStrategy(
function(username, password, done) {
async.parallel([
function(cb){
User.findOne({ username: username }, function (err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false); }
if (!user.verifyPassword(password)) { return done(null, false); }
return cb(null, user);
});
},
function(cb){
Admin.findOne({ username: username }, function (err, user) {
if (err) { return done(err); }
if (!user) { return done(null, false); }
if (!user.verifyPassword(password)) { return done(null, false); }
return cb(null, user);
});
}
], ([res1, res2]) => {
// on result
done(null, res1)
// OR
done(null, res1)
})
}
));
【讨论】: