Authentification
Flux
POST /api/auth/register→ crée leUser(hash bcrypt). Pour un compte pro, le SIRET est vérifié contre la base Sirene.POST /api/auth/login→ vérifie le hash, génère un JWT HS256.- Le JWT est posé en cookie httpOnly
zh_token(Secure en prod, SameSite=Lax). - Chaque requête authentifiée passe par le
JwtAuthGuardqui décode le cookie et hydratereq.user.
Durée de session
- Par défaut : 12 h si « Se souvenir de moi » est coché à la connexion.
- Sliding session : la durée est renouvelée à chaque requête authentifiée.
Mot de passe oublié
POST /api/auth/forgot-password
→ génère un token (32 bytes hex), TTL 1h
→ envoie un e-mail avec le lien
POST /api/auth/reset-password
→ vérifie le token, met à jour le hash, invalide le tokenStockage des secrets
- Mots de passe : bcrypt (coût adaptatif).
- Secrets externes (clés API gateways, Proxmox, etc.) : AES-256-GCM via
CryptoService(clé maître dansENCRYPTION_KEY).
Cookies
ZelhayHost n'utilise que des cookies fonctionnels :
zh_token— JWT de session.zh_theme/zh_pro_theme— préférence de thème.- préférence de langue.
Aucun cookie de traçage publicitaire n'est déposé.