感谢您查看此问题。
我正在使用vhost
建立一个包含3个快递应用的服务:
因此,每个人都使用Passport.js
进行不同的身份验证(不同的用户集合)。结束每一个成功验证。问题出在Passport's
serialize()
和deserialize()
方法中,该方法会覆盖另一个vhost中的上一个方法。我这样打电话给他们:
server.js
var app = express(),
clientApp = require('./config/client/express')(db),
moderatorApp = require('./config/moderator/express')(db);
app.use(vhost('localhost', mainApp));
app.use(vhost('moderator.localhost', moderatorApp));
app.listen(config.port);
的客户机/ express.js
// some express settings, router settings
// and here I set passport
passport.serializeUser(function(user, done) {
done(null, user.id);
});
// Deserialize sessions
passport.deserializeUser(function(id, done) {
User.findOne({
//....
})
});
// Require necessary strategies
require(path.resolve('config/moderator/strategies/local.js'))();
// Return Express server instance
return app;
慢化剂/ express.js
除了client/express.js
Passport's
方法之外,这里几乎(制作一些安全性内容)与deserialize()
相同。它在SuperUsers
集合中查找用户。
最后的问题
问题是在身份验证后,护照无法从需要的集合中反序列化用户。我认为它会覆盖以前的护照反序列化设置。但是如果只留下一个护照序列化和反序列化方法(删除另一个序列化和反序列化方法,它会覆盖prvious)它完全正常。
问题
如何在两个vhosts
中设置护照的序列化和反序列化方法,它们不会相互冲突???
请社区帮助我。