все хорошо?Я хотел бы знать лучший способ и, если возможно, отправить определенный параметр в экспресс-функцию в NodeJS.
Я хочу передать строку ('admin') или другую строку, которую я хочу функционировать'RoleTolen', используя мой маршрут.
функция verifyToken
function verifyToken(req, res, next) {
// Get auth header value
const bearerHeader = req.headers["authorization"];
// Check if bearer is undefined
if (typeof bearerHeader !== "undefined") {
// Split at the space
const bearer = bearerHeader.split(" ");
// Get token from array
const bearerToken = bearer[1];
// Set the token
req.token = bearerToken;
// Next middleware
next();
} else {
// Forbidden
res.sendStatus(403);
}
}
функция ValidToken
function validToken(req, res, next) {
jwt.verify(req.token, process.env.SECRET, (err, authData) => {
if (err) {
res.sendStatus(403);
} else {
next();
}
});
}
функция RolesToken
function rolesToken(role, req, res, next) {
var decoded = jwt.decode(req.token);
if (!decoded.permissions.includes(role)) {
res.json("sem permissao");
} else {
next();
}
}
мой маршрут
router.post(
"/posts",
verifyToken,
validToken,
rolesToken("admin"),
customerController.posts
);