Authentication & Authorization
On this page
The authentication system handles users, sessions, and security:
- AuthManager (
core/lib/auth/auth-manager.js
): Coordinates authentication modules - UserManager (
core/lib/auth/modules/user-manager.js
): Manages user accounts - SessionManager (
core/lib/auth/modules/session-manager.js
): Handles login sessions - PasswordService (
core/lib/auth/modules/password-service.js
): Secure password hashing - RateLimiter (
core/lib/auth/modules/rate-limiter.js
): Prevents brute-force attacks
Components
Auth Manager
├── User Manager # User CRUD operations
├── Session Manager # Session handling
├── Password Service # Argon2 hashing
└── Rate Limiter # Brute force protection
User Roles
- Admin: Full system access
- Editor: Content management only
Security Features
- Password Hashing: Argon2id with configurable parameters
- Rate Limiting: Protect against brute force attacks
- Session Management: Secure token-based sessions
- CSRF Protection: Via signed cookies
- Input Validation: Sanitize all user inputs
Authentication Flow
1. User submits credentials
2. Rate limit check
3. Password verification (Argon2)
4. Session creation
5. Secure cookie/token delivery
6. Middleware verification on requests