UNPKG

@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
"use strict"; /* 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(); }; }