У меня есть промежуточное ПО маршрута, которое проверяет токен JWT. Теперь я хочу добавить проверку роли пользователя. Например, только администратору разрешено выполнять /api/admin/invite
конечную точку. Вот код промежуточного ПО verifyToken:
module.exports = function (app) {
let jwt = require('jsonwebtoken');
function verifyToken(req, res, next) {
let token = req.headers['x-access-token'];
if (!token)
return res.status(404).send({auth: false, message: 'No token provided.'})
jwt.verify(token, app.config.secret, function (err, decoded) {
if (err)
return res.status(403).send({auth: false, message: 'Failed to authenticate token.'});
req.userId = decoded.id;
next();
});
}
return verifyToken;
};
А вот код, где я передаю промежуточное ПО для маршрутизации:
let adminRouter = express.Router();
let adminProvider = require('./admin-provider');
let verifyToken = require(__root + 'auth/verify-token')(app);
adminRouter.post('/admin/invite', verifyToken, mailProvider.adminProvider);
Как лучше всего добавить проверку роли пользователя для определенных маршрутов?