С Express-jwt, как использовать псевдонимы маршрутизации?
Это экспресс-способ подключения маршрутизации:
// routes
app.get('/grid', function ..
..
app.use('/grid', expressJwt({secret : secret}));
Но когда я использую псевдонимы для маршрутизации (express> = 4)..
var gridRouter = express.Router()
, authRouter = express.Router();
// routes
grid.get('/', function ..
app.use('/grid', gridRouter)
app.use('/auth', authRouter)
... JWT не работает.
1 ответ
Решение
Я нашел ответ сам и хотел поделиться им. Мы не можем защитить псевдонимы отдельных маршрутизаторов с помощью ExpressJWT, но мы можем защитить пути, к которым мы привыкли.
var gridRouter = express.Router()
, authRouter = express.Router();
app.use('/grid/nestedGridPath', expressJwt({secret: secret}))
app.use('/auth/nestedAuthPath', expressJwt({secret: secret}))
app.use('/grid', gridRouter)
app.use('/auth', authRouter)
Источники: https://www.npmjs.org/package/express-jwt
Обновить:
Кроме того, если у вас возникли проблемы с тем, чтобы вообще заставить работать Express-Jwt, вы все равно можете подключить его напрямую, например:
app.delete('/grid/delete/:id', expressJwt({secret:secret}), myFunc);