Tôi sử dụng giải pháp này. Tôi nhận được mã thông báo jwt trong yêu cầu nội dung và nhận thông tin vai trò từ đó
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 }
Vì vậy, trước tiên tôi sử dụng phần mềm trung gian auth để biết liệu có phải là người dùng hợp lệ hay không và sau đó là phần mềm trung gian vai trò để biết liệu người dùng có quyền truy cập vào tuyến api hay không
router.post('/v1/something-protected', requireAuth, checkRole('commercial'), (req, res) => {
})
Tôi hy vọng sẽ hữu ích