Skip to content

BDD-11 — Mot de passe oublie

1. User Story

En tant que client externe,
Je veux reinitialiser mon mot de passe,
Afin de retrouver l'acces a mon espace si je l'ai oublie.

2. Criteres d'acceptance

  1. Un lien "Mot de passe oublie" est accessible depuis l'ecran de connexion.
  2. L'utilisateur recoit un email avec un lien de reinitialisation.
  3. Ce lien n'est utilisable qu'une seule fois.

3. Perimetre fonctionnel

  • Lien depuis la page de connexion : front/src/pages/login/LoginPage.vue
  • Page de demande de reinitialisation : front/src/pages/login/ForgotPasswordPage.vue
  • Page de saisie du nouveau mot de passe : front/src/pages/login/ResetPasswordPage.vue
  • Action store pour l'envoi de l'email : front/src/stores/auth-store.js (requestPasswordReset)
  • Routes ajoutees : front/src/router/routes.js (/login/forgot-password, /login/reset-password)
  • Interception du lien recovery Supabase : front/src/App.vue (guard beforeEach)
  • Activation du plugin Notify Quasar : front/src/main.js

4. Points de verification

  • Presence du lien "Mot de passe oublie ?" sur la page de connexion.
  • Envoi d'un email de reinitialisation apres saisie d'un email valide.
  • Affichage d'un message de confirmation apres envoi.
  • Redirection vers /login/reset-password lors du clic sur le lien dans l'email.
  • Formulaire de saisie du nouveau mot de passe avec confirmation.
  • Notification de succes et redirection vers /login apres changement.
  • Message d'erreur si le lien est invalide, expire ou deja utilise (token OTP a usage unique, gere par Supabase).

5. Tests associes

  • Tests unitaires/composants :
    • front/src/__tests__/pages/login/ForgotPasswordPage.spec.js
    • front/src/__tests__/pages/login/ResetPasswordPage.spec.js
    • front/src/__tests__/stores/auth-store.spec.js (section requestPasswordReset)
  • Scenarios E2E recommandes (Playwright) :
    • clic "Mot de passe oublie" -> navigation vers /login/forgot-password
    • saisie email -> message de confirmation
    • clic lien email -> formulaire de reinitialisation
    • saisie nouveau mot de passe -> redirection /login
    • reutilisation du lien -> message d'erreur