ฉันใช้วิธีนี้ ฉันได้รับโทเค็น jwt ในความต้องการของร่างกายและรับข้อมูลบทบาทจากที่นั่น
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 }
ก่อนอื่นฉันใช้มิดเดิลแวร์รับรองความถูกต้องเพื่อทราบว่าเป็นผู้ใช้ที่ถูกต้องหรือไม่จากนั้นมิดเดิลแวร์บทบาทเพื่อทราบว่าผู้ใช้สามารถเข้าถึงเส้นทาง API ได้หรือไม่
router.post('/v1/something-protected', requireAuth, checkRole('commercial'), (req, res) => {
})
ผมหวังว่าจะเป็นประโยชน์