如何在单个快速服务器文件中使用两个单独的护照实例

时间:2016-02-14 13:25:38

标签: javascript node.js authentication express passport.js

我有一个带有用户和管理员部分的快速应用程序。两者都将在不同的端口上运行,需要不同的身份验我创建了一个app.js,其中包含护照并创建应用程序以及adminApp。然后我按如下方式初始化护照:

var passport = require('passport');
var app = express();
var adminapp = express();

adminapp.use(passport.initialize());
adminapp.use(passport.session());

app.use(passport.initialize());
app.use(passport.session());

现在我定义了侦听/ auth并处理身份验证的路由。由于我在不同的端口上运行它们,因此我对路由具有相同的模式,并且两者都在其端口上正确侦听。因此,假设我有userSessions.jsadminSessions.js个文件来处理身份验证路由。这些包括如下:

var userSessions = require('./routes/userSessions');
var adminSessions = require('./routes/adminSessions');

app.use('/auth', userSessions);
adminapp.use('/auth', adminSessions); 

现在,如果我尝试在管理员应用上进行身份验证,它仍会转到passport.serializeUser的{​​{1}}和passport.deSerializeUser方法。

如何处理这种情况,以便单独处理管理员和用户身份验证?或者我这样做是错误的方式和管理部分应该在完全不同的应用程序中处理?

1 个答案:

答案 0 :(得分:5)

没试过但你可以找 passports

var Passport = require('passport').Passport,
    appPass = new Passport(),
    adminappPass = new Passport();