Что является лучшим способом аутентификации некоторых маршрутов на Express 4 Router?
Я использую Express 4, где у меня есть маршрут, защищенный паспортом .js, например:
var media = require('express').Router();
media.get('/', function(req, res) {
// provide results from db
});
media.post('/', passport.authenticate('bearer'), function(req, res) {
// This route is auth protected
});
Итак - собирать маршруты сбора должны (в основном) не защищаться для меня, и создавать маршруты/обновления должны. Но для этого требуется, чтобы я передавал паспорт всем файлам маршрутов (пока у меня 7), затем добавьте это как промежуточное программное обеспечение для некоторых из них.
Мне нравится версия, где вы можете сделать что-то вроде этого:
var router = require('./my-router');
app.use('/api/route', passport.authenticate('bearer'));
app.use('/api/route', router);
Но для этого потребуется auth на всех моих маршрутах.
Есть ли лучший способ, чтобы пройти паспорт на всем пути?
Ответы
Ответ 1
Вы можете разбить маршрутизатор на защищенный/незащищенный и вызвать промежуточное ПО на защищенных маршрутах.
var express = require('express'),
media = express.Router(),
mediaProtected = express.Router();
media.get('/', function(req, res) {
// provide results from db
});
mediaProtected.post('/', function(req, res) {
// This route is auth protected
});
module.exports = {
protected: mediaProtected,
unprotected: media
};
И тогда вы можете сделать
var router = require('./my-router');
app.use('/api/route', passport.authenticate('bearer'), router.protected);
app.use('/api/route', router.unprotected);