假設我有這樣的代碼:如何針對不同路線使用相同的護照策略?
var api1 = require('api1');
var api2 = require('api2');
var app = express();
app.use('/api1', api1);
app.use('/api2', api2);
這裏是API1模塊的代碼:
var router = express.Router();
var options = {
jwtFromRequest:ExtractJwt.fromAuthHeader(),
secretOrKey:config.JWTSecret,
algorithms:['HS256']
}
passport.use(new JwtStrategy(options, function(jwt_payload, verify) {
//here I look for the user in database No.1
}));
router.post('/files', passport.authenticate('jwt', { session: false}), function(req, res) {
//...
}
module.exports = router;
而這是API2模塊的代碼:
var router = express.Router();
var options = {
jwtFromRequest:ExtractJwt.fromAuthHeader(),
secretOrKey:config.JWTSecret,
algorithms:['HS256']
}
passport.use(new JwtStrategy(options, function(jwt_payload, verify) {
//here I look for the user in database No.2
}));
router.post('/files', passport.authenticate('jwt', { session: false}), function(req, res) {
//...
}
module.exports = router;
這沒工作。在這兩種情況下,如果我將POST發送到「/ api1/files」和「/ api2/files」,它將在數據庫No2中查找用戶。如果對這個問題沒有解決方案,使用passport.js api,那麼處理這類問題的其他可行方法是什麼?
我實際上並不清楚你在問什麼。你是說這兩個API具有不同的用戶集合,並且與其中的用戶完全分離的數據庫? – Paul