
# Modifier le mot de passe

`POST /fapi/v1/me/password` · appelé depuis l'hôte de connexion de l'environnement

Modifie le mot de passe de l'utilisateur connecté. Le mot de passe actuel est vérifié ; le nouveau mot de passe doit respecter la politique de mot de passe de l'environnement, la vérification des mots de passe compromis et la règle d'historique des mots de passe. En cas de succès, toutes les autres sessions et tous les autres jetons de rafraîchissement de l'utilisateur sont révoqués, cette session reste connectée, et une notification de sécurité est envoyée aux adresses e-mail de l'utilisateur. Requiert le cookie `__Host-idp_session` de l'utilisateur authentifié. Une application de première partie sur une autre origine peut à la place envoyer son jeton d'accès à l'API front (`Authorization: DPoP <token>` avec une preuve DPoP ; voir [Jeton d'accès à l'API front](/docs/api/fapi/front-api-token)).

## Requête

En-têtes :

| En-tête | Requis | Description |
| --- | --- | --- |
| `Idp-Client` | oui | Identifiant du SDK. |
| `Origin` | oui | Doit être exactement `https://<hôte de connexion>`. |

Corps :

```json
{"current_password": "…", "new_password": "…"}
```

## Réponse

`204 No Content`.

## Erreurs

| Statut | Code | Quand |
| --- | --- | --- |
| 401 | `unauthenticated` | Aucun cookie de session valide. |
| 401 | `step_up_required` | La session n'a pas été vérifiée au cours des 5 dernières minutes ; vérifiez à nouveau avec `max_age=300` dans l'en-tête `WWW-Authenticate`. Rien n'est vérifié ni comptabilisé. |
| 401 | `invalid_credentials` | Le mot de passe actuel est incorrect. Les échecs répétés verrouillent le mot de passe de la même façon que lors de la connexion. |
| 403 | `origin_not_allowed` | `Origin` est absent ou incorrect. |
| 422 | `password_policy_violation` | Le nouveau mot de passe ne respecte pas la politique ; `errors[]` liste chaque règle non respectée pour `/new_password` (`too_short`, `too_long`, `context_term`, `custom_term`, `repeated_chars`, `invalid_text`, `reused`). |
| 422 | `breached_password` | Le nouveau mot de passe figure dans une fuite de données connue. |
| 503 | `temporarily_unavailable` | Le serveur est occupé ; réessayez après le nombre de secondes indiqué dans `Retry-After`. |

## Exemple

```bash
curl -X POST https://example.keenauth.app/fapi/v1/me/password \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -H "Origin: https://example.keenauth.app" \
  -H "Content-Type: application/json" \
  -d '{"current_password": "…", "new_password": "…"}' \
  -b cookies.txt
```

## Données personnelles

Cet endpoint traite des données personnelles : des identifiants. [Données personnelles dans les API KeenAuth](/docs/policies/personal-data) décrit ce qui est stocké, pendant combien de temps et comment elles sont supprimées. N'envoyez pas de catégories particulières de données personnelles (santé, données biométriques, religion, opinions politiques, orientation sexuelle) dans aucun champ.
