Есть много вариантов.Я могу объяснить вам некоторые из них.
1) Как вы сказали, вы можете определить логическое поле как Admin true для false.
-> если вы используете эту опцию и используете паспорт,Вы должны получить пользователя в своем объекте запроса. Прежде чем нажимать api или конкретную конечную точку, вы можете установить промежуточное ПО для проверки того, что запрашиваемый пользователь является администратором или пользователем.file
Имя файла: ../services/auth.service.js
exports.isAdmin = async (req, res, next) => {
// req.user is object that you will get after successfull login. change accordingly
// Or you can check from db also. Get object logged in user from db by their email id.
// And check condition
// Check Role if admin or not
if(req.user.isAdmin) {
next(); // If verify it will redirect to next process
} else {
return res.status(401).json({
Error: true,
message: 'You are not authorized to perform this action.',
})
}
};
Вы можете использовать эту функцию в качестве промежуточного программного обеспечения.
const auth = require('../services/auth.service.js')
router.get('/*', auth.isAdmin, (req, res) => {
res.status(200).json({ message: "Hello from Admin side."})
});
Посетите: https://github.com/mihir-kanzariya/Nodejs-CRUD