С 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);
Другие вопросы по тегам