Aller au contenu

Réinitialisation du mot de passe

Ces routes permettent de demander un lien de réinitialisation puis de définir un nouveau mot de passe. Elles sont accessibles sans authentification afin de permettre leur utilisation depuis l'écran de connexion.

Fonctionnement

  1. Le client appelle POST /rest/password avec le login de l'utilisateur.
  2. Si le compte existe, Maarch Courrier génère un jeton valable une heure et place un courriel de réinitialisation dans la file d'envoi.
  3. Le client transmet ce jeton avec le nouveau mot de passe à PUT /rest/password.
  4. Après la modification, le jeton est supprimé et ne peut plus être réutilisé.

Une nouvelle demande remplace le jeton précédemment enregistré. Seul le lien correspondant à la demande la plus récente peut être utilisé.

Demander la réinitialisation d'un mot de passe

Route

POST /rest/password

Cette route ne nécessite pas d'en-tête Authorization.

Paramètres

Body

Valeur Type Obligatoire Description
login string Oui Login de l'utilisateur. La recherche n'est pas sensible à la casse
Exemple
{
  "login": "bwayne"
}

Retour

Code HTTP Type Description
204 aucun La demande a été prise en compte. La réponse ne contient pas de corps
400 object Le paramètre login est absent ou vide

Erreur

{
  "errors": "Body login is empty"
}

Comportement

Lorsque l'utilisateur existe :

  • un jeton JWT de réinitialisation valable une heure est généré ;
  • le jeton est enregistré sur le compte utilisateur ;
  • un courriel contenant un lien vers l'écran de réinitialisation est placé dans la file d'envoi ;
  • une entrée est ajoutée à l'historique de l'utilisateur.

Lorsque l'utilisateur n'existe pas, la route renvoie également un code 204 sans corps de réponse. Ce comportement empêche de déterminer si un login est enregistré dans Maarch Courrier.

Le code 204 confirme la prise en compte de la demande, mais ne garantit pas la remise du courriel au destinataire.

Définir un nouveau mot de passe

Route

PUT /rest/password

Cette route ne nécessite pas d'en-tête Authorization. Le jeton de réinitialisation assure l'autorisation de la modification.

Paramètres

Body

Valeur Type Obligatoire Description
token string Oui Jeton reçu dans le lien de réinitialisation
password string Oui Nouveau mot de passe respectant les règles de sécurité actives

Les règles actives peuvent être récupérées avec la route GET /rest/passwordRules. Selon la configuration, elles peuvent imposer une longueur minimale, une majuscule, un chiffre ou un caractère spécial.

Exemple
{
  "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
  "password": "MotDePasse-2026"
}

Retour

Code HTTP Type Description
204 aucun Le mot de passe a été modifié. La réponse ne contient pas de corps
400 object Paramètre manquant, utilisateur inexistant ou mot de passe non conforme
403 object Jeton invalide, expiré, remplacé ou déjà utilisé

Erreurs

Situation Code HTTP Exemple
token ou password absent 400 {"errors":"Body token or body password is empty"}
Utilisateur référencé par le jeton inexistant 400 {"errors":"User does not exist"}
Mot de passe non conforme aux règles actives 400 {"errors":"Password does not match security criteria"}
Jeton invalide, expiré ou différent du jeton enregistré 403 {"errors":"Invalid token","lang":"invalidToken"}

Effets de la modification

Après une réponse 204 :

  • le mot de passe est enregistré sous forme de hash ;
  • la date de dernière modification du mot de passe est mise à jour ;
  • le jeton de réinitialisation est supprimé ;
  • une entrée est ajoutée à l'historique de l'utilisateur.