Как проверить, может ли пользователь получить доступ к конечной точке, сохраняющей роль пользователя в токене JWT? - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть промежуточное ПО маршрута, которое проверяет токен 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);

Как лучше всего добавить проверку роли пользователя для определенных маршрутов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...