gov-auth-cerbos-frontend
v1.0.3
Published
// CommonJS const PermissionChecker = require('jwt-permission-checker');
Downloads
7
Readme
// CommonJS const PermissionChecker = require('jwt-permission-checker');
// ES Modules import PermissionChecker from 'jwt-permission-checker';
// Basic usage const token = 'your.jwt.token'; const checker = new PermissionChecker(token);
// Check permissions async function checkUserAccess() { const canEditUsers = await checker.hasPermission('EDIT_USERS'); const isAdmin = await checker.hasRole('ADMIN'); const isInSalesGroup = await checker.hasGroup('SALES');
console.log('Can edit users:', canEditUsers); console.log('Is admin:', isAdmin); console.log('In sales group:', isInSalesGroup); }
// Get user and client info const clientId = checker.getClientId(); const userId = checker.getUserId();
// Check URL-based permissions async function checkUrlAccess() { const canAccess = await checker.checkUrlPermission('/api/users', 'GET'); if (canAccess) { // Proceed with the request } }
// React example function AdminPanel() { const [hasAccess, setHasAccess] = useState(false); const [loading, setLoading] = useState(true);
useEffect(() => { const token = localStorage.getItem('token'); const checker = new PermissionChecker(token);
checker.hasPermission('ADMIN_ACCESS')
.then(result => setHasAccess(result))
.finally(() => setLoading(false));}, []);
if (loading) return Loading...; if (!hasAccess) return Access denied;
return Admin Panel Content; }
