Authentication & Authorization
TalentG implements a robust authentication and authorization system using Supabase Auth with OAuth integration, JWT tokens, and role-based access control (RBAC).Authentication Architecture
Supported Authentication Methods
1. Email/Password Authentication
Traditional email and password authentication with additional security features. Features:- Email verification required for account activation
- Password reset via secure email links
- Account lockout protection after failed attempts
- Password strength requirements and validation
2. OAuth Providers
Social authentication through trusted OAuth providers. Supported Providers:- Google OAuth: Primary authentication method
- GitHub OAuth: Developer-focused authentication
- Future: LinkedIn, Microsoft (planned)
3. Magic Link Authentication
Passwordless authentication via email magic links. Process:- User enters email address
- System sends secure magic link
- Link contains encrypted authentication token
- Single-use token with expiration (24 hours)
Authentication Flow
Token Management
JWT Token Structure
Access Token:- Used to obtain new access tokens
- Stored securely in HTTP-only cookies
- Automatic rotation on token refresh
Token Lifecycle
Token Expiration
- Access Token: 1 hour expiration
- Refresh Token: 30 days expiration (configurable)
- Automatic Refresh: Client-side token refresh before expiration
Token Storage
Token Refresh Logic
Role-Based Access Control (RBAC)
User Roles Hierarchy
| Role | Level | Description | Dashboard Access |
|---|---|---|---|
| Free User | 1 | Basic platform access | General dashboard |
| Paid User | 2 | Premium AI features | All free + Pro features |
| Course Learner | 3 | Course-based learning | Learning dashboard |
| Intern | 4 | Internship management | Intern dashboard |
| Course Mentor | 5 | Teaching and mentoring | Mentor dashboard |
| Internship Mentor | 6 | Advanced mentorship | Internship mentor dashboard |
| Trainer | 7 | Training program management | Training dashboard |
| Admin | 8 | System administration | Admin panel |
| TalentGro Team | 9 | Internal management | Enhanced admin |
| University Student | 3 | Academic management | Student portal |
Permission System
Permission Categories
System Permissions:read:users- View user informationwrite:users- Modify user accountsdelete:users- Deactivate user accountsadmin:system- Full system administration
create:content- Create courses and materialsedit:content- Modify existing contentpublish:content- Publish content for usersdelete:content- Remove content
take:assessment- Access assessment featuresview:results- View assessment resultsexport:results- Export assessment reportsmanage:assessments- Admin assessment management
enroll:courses- Enroll in coursessubmit:assignments- Submit assignmentsgrade:assignments- Grade student workmanage:classes- Manage class schedules
Permission Mapping
Route Protection
Middleware Implementation
Client-Side Route Protection
Database Security
Row Level Security (RLS) Policies
Data Isolation
User Data Isolation
- Complete separation between user data
- Users can only access their own information
- Cross-user data leakage prevention
Organization Data Isolation
- University-specific data isolation
- Trainer-specific course access
- Department-level data segmentation
API Authentication
Bearer Token Authentication
API Key Authentication (Admin)
Session Management
Session Lifecycle
Session Creation
Session Validation
Session Termination
Session Security
Secure Cookie Configuration
Session Monitoring
- Automatic session refresh before expiration
- Session invalidation on suspicious activity
- Concurrent session management
- Session timeout configuration
Multi-Factor Authentication (Future)
Planned MFA Implementation
TOTP (Time-based One-Time Password)
- Google Authenticator integration
- SMS-based verification
- Email-based secondary verification
MFA Flow
Security Best Practices
Password Security
- Minimum 8 characters with complexity requirements
- Password history prevention
- Secure password reset flow
- Brute force protection
API Security
- Rate limiting on all endpoints
- Input validation and sanitization
- CORS configuration
- Security headers implementation