如何在单个快速服务器文件中使用两个单独的护照实例
How to use two separate passport instances in a single express server file
我有一个带有用户和管理部分的快速应用程序。两者都将 运行 在不同的端口上,并且需要不同的身份验证。我创建了一个 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.js
和 adminSessions.js
文件来处理身份验证路由。这些包括如下:
var userSessions = require('./routes/userSessions');
var adminSessions = require('./routes/adminSessions');
app.use('/auth', userSessions);
adminapp.use('/auth', adminSessions);
现在,如果我尝试在管理应用程序上进行身份验证,它仍然会转到 userSessions.js
的 passport.serializeUser
和 passport.deSerializeUser
方法。
如何处理这种情况,以便分别处理管理员和用户身份验证?还是我做错了,管理部分应该在完全不同的应用程序中处理?
没试过但你可以找
passports
var Passport = require('passport').Passport,
appPass = new Passport(),
adminappPass = new Passport();
我有一个带有用户和管理部分的快速应用程序。两者都将 运行 在不同的端口上,并且需要不同的身份验证。我创建了一个 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.js
和 adminSessions.js
文件来处理身份验证路由。这些包括如下:
var userSessions = require('./routes/userSessions');
var adminSessions = require('./routes/adminSessions');
app.use('/auth', userSessions);
adminapp.use('/auth', adminSessions);
现在,如果我尝试在管理应用程序上进行身份验证,它仍然会转到 userSessions.js
的 passport.serializeUser
和 passport.deSerializeUser
方法。
如何处理这种情况,以便分别处理管理员和用户身份验证?还是我做错了,管理部分应该在完全不同的应用程序中处理?
没试过但你可以找 passports
var Passport = require('passport').Passport,
appPass = new Passport(),
adminappPass = new Passport();