Skip to main content

Surface concernée

Cette page documente l’authentification de la console web : Elle ne concerne pas l’API publique x-api-key.

En-tête d’espace équipe (optionnel)

Après connexion, Authorization: Bearer <jwt> identifie l’utilisateur. Pour les routes ressources sous /api/* (par ex. /api/messages, /api/contacts, /api/campaigns, /api/instances, /api/templates, /api/webhooks, /api/statuses, /api/media, /api/number-lookups), vous pouvez ajouter :
  • Avec X-Team-Id : l’espace partagé de cette équipe (vous devez être membre actif).
  • Sans : espace personnel.
Les routes /api/auth/* ignorent cet en-tête. La gestion équipe sous /api/teams est à part ; voir Équipes & espaces de travail et Contexte équipe.

Endpoints utilisés par la console


Inscription par e-mail

POST /api/auth/signup ne connecte plus automatiquement l’utilisateur. Réponse attendue :
Comportement UX attendu :
  • compte créé
  • écran “Vérifiez votre e-mail”
  • possibilité de renvoyer le lien
  • retour vers la page de connexion

Connexion par e-mail

POST /api/auth/login renvoie toujours un JWT si la connexion réussit. Cas métier important : Exemple EMAIL_NOT_VERIFIED :

OAuth Google

Flux :
  1. la console ouvre GET /api/auth/google
  2. le backend redirige vers Google
  3. Google revient sur https://app.msgflash.com/auth/callback
  4. le token JWT est lu depuis ?token=...
  5. la console stocke le JWT puis redirige vers /dashboard
Si la callback contient ?error=oauth_failed, la console renvoie l’utilisateur vers /login?error=oauth_failed.

Vérification e-mail

Page concernée :
Flux recommandé :
  1. lire token
  2. appeler GET /api/auth/verify-email/validate?token=...
  3. si valide, appeler POST /api/auth/verify-email
  4. afficher le résultat sans connexion automatique
États à gérer :
  • valid
  • expired
  • used
  • invalid
  • already_verified
Le compte n’est pas auto-connecté après vérification. L’utilisateur revient ensuite sur /login.

Mot de passe oublié

Flux :
  1. formulaire /forgot-password
  2. POST /api/auth/forgot-password
  3. réception d’un lien
  4. page /reset-password?token=...
  5. validation du token
  6. POST /api/auth/reset-password
  7. retour vers /login

Notes UX importantes

  • L’inscription classique n’ouvre pas de session automatiquement.
  • La vérification e-mail est obligatoire avant connexion.
  • Le bouton “Renvoyer l’e-mail de vérification” doit rester disponible sur :
    • l’écran après inscription
    • l’écran de login quand EMAIL_NOT_VERIFIED est reçu
    • la page /verify-email quand le token est expiré ou invalide