@the-node-forge/jwt-utils
Version:
A flexible, lightweight Node.js JWT library for generating, verifying, and managing JSON Web Tokens (JWTs). Supports access and refresh tokens with customizable secrets for authentication and role-based access control. Includes middleware for Express, Fas
27 lines (26 loc) • 902 B
JavaScript
;
/* eslint-disable @typescript-eslint/no-require-imports, @typescript-eslint/no-unused-vars */
Object.defineProperty(exports, "__esModule", { value: true });
exports.authorizeRoles = authorizeRoles;
let express;
function authorizeRoles(...allowedRoles) {
if (!express) {
try {
express = require('express');
}
catch (error) {
throw new Error("RBAC middleware is being used, but 'express' is not installed. Please install it as a peer dependency.");
}
}
return (req, res, next) => {
if (!req.user) {
return res.status(401).json({ message: 'Unauthorized: No user data found' });
}
if (!allowedRoles.includes(req.user.role)) {
return res
.status(403)
.json({ message: 'Forbidden: Insufficient Permissions' });
}
next();
};
}