我有2个集合的API-管理员和用户。目前我的护照jwtStrategy是:
const jwtStrategy = new JwtStrategy(jwtOptions, (jwtPayload, done) => {
console.log(jwtPayload)
User.findById(jwtPayload.sub, (err, user) => {
if (err) {
return done(err, null)
}
if (user) {
return done(null, user)
} else {
return done(null, false)
}
})
})
但这仅对用户有效,因为findById已在用户上完成。我需要类似findById here or here()
的东西。我如何将两者结合起来?
答案 0 :(得分:1)
您可以检查user
集合中是否存在User
,如果不存在,则可以检查Admin
集合中的用户。
尝试一下:
const jwtStrategy = new JwtStrategy(jwtOptions, (jwtPayload, done) => {
console.log(jwtPayload)
User.findById(jwtPayload.sub, (err, user) => {
if (err) {
return done(err, null)
}
if (user) {
return done(null, user)
} else {
//search in Admin collection
Admin.findById(jwtPayload.sub,(err,admin) => {
if(err){
return done(err,null)
}
if(admin){
return done(null,admin)
}else{
return done(null, false)
}
})
}
})
})