COOP-CA AMIFOND

Core Banking System · PC-EMF · Django

DEVELOPMENT

Authentication

JWT · Custom User · Workspaces · DeviceSessions

Essentiel v2.0 Production Ready
Voir dans Swagger

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
Swagger UI ReDoc OpenAPI JSON

Métadonnées

Mainteneur Core Team
Version v2.0
Statut Production Ready
Endpoints 11
Compatibilité Django 5.0+ / Python 3.12