Node.js Express.js:2 PasportJS';vhost中的s反序列化()方法冲突

Node.js Express.js:2 PasportJS';vhost中的s反序列化()方法冲突,node.js,express,passport.js,vhosts,Node.js,Express,Passport.js,Vhosts,谢谢你看这个问题。 我正在使用vhost构建一个包含3个express应用程序的服务: 为客户 主持人 对于管理员(这个尚未开发) 因此,它们中的每一个都使用带有不同身份验证(不同的用户集合)的Passport.js。最后,他们中的每一个人都成功地进行了身份验证。问题出在Passport的序列化()和反序列化()方法中,该方法覆盖了另一个vhost中以前的方法。我这样称呼他们: server.js var app = express(), clientApp

谢谢你看这个问题。 我正在使用
vhost
构建一个包含3个express应用程序的服务:

  • 为客户
  • 主持人
  • 对于管理员(这个尚未开发)
  • 因此,它们中的每一个都使用带有不同身份验证(不同的用户集合)的
    Passport.js
    。最后,他们中的每一个人都成功地进行了身份验证。问题出在
    Passport的
    序列化()
    反序列化()
    方法中,该方法覆盖了另一个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);
    
    // 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;
    
    client/express.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);
    
    // 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 除了Passport的
    反序列化()
    方法之外,这里几乎(做了一些安全性方面的东西)与
    client/express.js中的
    相同。它在
    超级用户
    集合中查找用户

    关于问题的最后一点

    问题是身份验证后passport无法从所需集合反序列化用户。我认为它覆盖了以前的passport反序列化设置。但是,如果只保留一个passport序列化和反序列化方法(删除另一个覆盖PROVERY的序列化和反序列化方法),则它完全可以工作

    问题 如何在两个
    vhost
    中设置passport的序列化和反序列化方法,使其不会相互冲突

    请帮助我