JWT-Based RBAC
Role-Based Access Control system with PostgreSQL backend and JWT authentication.
Features
- 🔐 Database-backed permissions - PostgreSQL storage for roles and permissions
- 🎫 JWT token management - Create and validate JWT tokens with embedded permissions
- ⚡ Permission caching - In-memory caching with configurable TTL
- 📝 Audit logging - Track all authorization attempts
- 🔄 Role management - Assign/revoke roles dynamically
Installation
pip install jwtbased-rbac
Quick Start
import asyncpg
from jwtbased_rbac import init_rbac_manager, get_rbac_manager, JWTManager
pool = await asyncpg.create_pool('postgresql://...')
init_rbac_manager(pool)
rbac = get_rbac_manager()
allowed = await rbac.check_permission('user@example.com', 'admin_tool')
permissions = await rbac.get_user_permissions('user@example.com')
token = JWTManager.create_access_token('user@example.com', permissions)
payload = JWTManager.decode_token(token)
Environment Variables
JWT_SECRET_KEY=your_secret_key_here
RBAC_CACHE_TTL_SECONDS=300
RBAC_STRICT_MODE=true
RBAC_AUDIT_ENABLED=true
JWT_ALGORITHM=HS256
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30
License
MIT License