Authentication
JWT · Custom User · Workspaces · DeviceSessions
Essentiel
v2.0
Production Ready
1. Présentation
Ce module implémente une stratégie JWT "cookie-first" : le token d'accès est posé dans un cookie HttpOnly au login, invisible au JavaScript. Le refresh token tourne automatiquement à chaque requête (rotation + blacklist).
2. Installation
# authentication est un module local — déjà inclus # Vérifier INSTALLED_APPS dans config/settings/base.py "authentication",
3. Configuration
# config/settings/base.py
AUTH_USER_MODEL = "authentication.User"
SIMPLE_JWT = {
"ACCESS_TOKEN_LIFETIME": timedelta(minutes=60),
"REFRESH_TOKEN_LIFETIME": timedelta(days=1),
"ROTATE_REFRESH_TOKENS": True,
"BLACKLIST_AFTER_ROTATION": True,
}
4. Modèles de données
User
Workspace
WorkspaceMember
DeviceSession
PasswordResetToken
Note opérateur : La stratégie "cookie HttpOnly" protège contre les attaques XSS. Le token n'est jamais exposé à window.localStorage.
5. Endpoints API
Authentication
11 endpoints| Méthode | Endpoint | Description |
|---|---|---|
| POST | /api/v1/auth/login/ | Login |
| POST | /api/v1/auth/logout/ | Logout |
| POST | /api/v1/auth/register/ | Inscription |
| POST | /api/v1/auth/refresh/ | Refresh token |
| GET | /api/v1/auth/users/me/ | Profil courant |
| POST | /api/v1/auth/workspaces/ | Créer workspace |
| GET | /api/v1/auth/workspaces/ | Mes workspaces |
| POST | /api/v1/auth/workspaces/{id}/switch/ | Switch workspace |
| GET | /api/v1/auth/sessions/ | Sessions actives |
| POST | /api/v1/auth/password/reset/ | Demande reset |
| POST | /api/v1/auth/password/reset/confirm/ | Confirm reset |
Métadonnées
| Mainteneur | Core Team |
| Version | v2.0 |
| Statut | Production Ready |
| Endpoints | 11 |
| Compatibilité | Django 5.0+ / Python 3.12 |