首页 > 解决方案 > 创建多个 LocalStrategies 并能够与它们一起使用会话

问题描述

我正在尝试为用户和房东使用不同的 localStrategies 及其工作,但问题是,我想让用户或房东在网站上保持会话。用户将被保留在带有会话的网站中,但对于房东来说,这不会发生。我的用户身份验证代码是:

    passport.use(new LocalStrategy(User.authenticate()))
    passport.use('landlord', new LocalStrategy(Landlord.authenticate()))

    passport.serializeUser(User.serializeUser())
    passport.serializeUser(Landlord.serializeUser())

   passport.deserializeUser(User.deserializeUser())
   passport.deserializeUser(Landlord.deserializeUser())

现在我使用 currentUser 属性res.locals并将其与 req.user 相等。

app.use((req, res, next) => {
    res.locals.currentUser = req.user
    res.locals.success = req.flash('success')
    res.locals.error = req.flash('error')
    next()
})

有什么方法可以将房东添加到会议中,req.以便我可以将其用于会话并保持房东登录,或者可能req.user同时为房东和用户使用。

标签: node.jsexpresssessionpassport.jspassport-local

解决方案


推荐阅读