RBAC
Role-based and permission-based access control.
1 min readEdit this page
Roles
import { requireRole } from '@restjs/auth'
app.delete('/users/:id', authenticate(jwt), requireRole('admin'), handler)
app.get('/reports', authenticate(jwt), requireRole(['admin', 'manager']), handler)Permissions
import { requirePermission } from '@restjs/auth'
app.post('/posts', authenticate(jwt), requirePermission('posts:create'), handler)
// 'admin:*' matches 'admin:read', 'admin:write', etc.Ownership
import { requireOwnership } from '@restjs/auth'
app.get('/users/:id/profile', authenticate(jwt), requireOwnership('id'), handler)
// Admins bypass ownership check