Angenommen, ich den Code wie dieses:Wie benutze ich dieselbe Pass-Strategie für verschiedene Routen?
var api1 = require('api1');
var api2 = require('api2');
var app = express();
app.use('/api1', api1);
app.use('/api2', api2);
Hier ist der Code für API1 Modul ist:
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;
Und das ist der Code für api2 Modul ist:
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;
Diese arbeite nicht. In beiden Fällen, wenn ich POST auf "/ api1/files" und "/ api2/files" setze, wird nach dem Benutzer in der Datenbank No2 gesucht. Wenn es keine Lösung für dieses Problem gibt, was sind die anderen möglichen Ansätze für den Umgang mit dieser Art von Problem mit pass.js api?
Ich bin nicht wirklich klar, was Sie fragen. Wollen Sie damit sagen, dass die beiden APIs unterschiedliche Benutzergruppen haben und die Datenbanken mit den Benutzern vollständig voneinander trennen? – Paul