J'utilise cette solution. Je reçois un jeton jwt dans le corps de la demande, et je récupère les informations sur le rôle à partir de là.
//roleMiddleware.js
const checkRole = role => {
return (req, res, next) => {
if (req.role == role) {
console.log(`${role} role granted`)
next()
} else {
res.status(401).send({ result: 'error', message: `No ${role} permission granted` })
}
}
}
module.exports = { checkRole }
J'utilise d'abord le middleware d'authentification pour savoir si l'utilisateur est valide, puis le middleware de rôle pour savoir si l'utilisateur a accès à la route api.
// router.js
router.post('/v1/something-protected', requireAuth, checkRole('commercial'), (req, res) => {
// do what you want...
})
J'espère être utile