Итак, я хотел передать параметр промежуточному программному обеспечению, но я борюсь за некоторые моменты.
У меня есть эта функция в обработчике маршрутов:
router.get('/users', auth.required, userController.findAll);
Тогда это будетперейти к функции аутентификации, которая вызывает getTokenFromHeaders
:
const auth = {
required: jwt({
secret: 'secret',
userProperty: 'payload',
getToken: getTokenFromHeaders,
}),
...
};
В функции getTokenFromHeaders
токен извлекается и проверяется, это выглядит так:
const getTokenFromHeaders = (req) => {
...
return token; // Or null in case it's not there or incorrect
Итак, моя цельбыло бы передать параметр, подобный этому auth.required('role')
, чтобы проверить роль пользователя внутри getTokenFromHeaders
функции (также неплохо было бы определить больше функций авторизации (auth.admin, auth.whothing, ...)
Я уже пытался изменить его следующим образом:
const auth = {
required: jwt({
secret: 'secret',
userProperty: 'payload',
getToken: getTokenFromHeaders(req, res, role),
}),
Но он говорит, что req и res не определены.
Есть ли способ сделать это?