Vue d’ensemble
L’API v2 utilise une authentification basée sur les sessions. La connexion s’effectue via POST /auth/login ; en cas de succès, une session est établie et un jeton CSRF est émis.
Les requêtes modifiant l’état (POST) nécessitent l’en-tête X-Fess-CSRF-Token. Pour les détails sur l’obtention et le renouvellement du jeton CSRF, ainsi que pour l’enveloppe de réponse commune et le modèle d’erreur, voir Vue d’ensemble de l’API.
Cette page décrit les quatre points de terminaison suivants.
Informations utilisateur communes (UserPayload)
Les informations utilisateur incluses dans les réponses de GET /auth/me et POST /auth/login sont retournées dans la structure commune UserPayload. Tous les champs de type tableau sont non-nuls ; un tableau vide est retourné s’il n’y a pas de valeur.
Récupération de l’état d’authentification
Requête
| Méthode HTTP | GET |
| Point de terminaison | /api/v2/auth/me |
Récupère l’utilisateur authentifié courant. Pour les appels anonymes, aucune erreur n’est retournée : authenticated: false est renvoyé. Lorsque l’utilisateur est authentifié, user contient un UserPayload.
Réponse
En cas de succès (HTTP 200), une réponse au format d’enveloppe commune est retournée (exemple d’utilisateur authentifié).
Les détails de chaque élément de response sont les suivants.
| Champ | Type | Description |
|---|---|---|
authenticated | boolean | Indique si l’utilisateur est authentifié. (Obligatoire) |
user | object | UserPayload. Présent uniquement si authenticated vaut true. |
Réponse d’erreur
Connexion
Requête
| Méthode HTTP | POST |
| Point de terminaison | /api/v2/auth/login |
Se connecte avec un nom d’utilisateur et un mot de passe. En cas de succès, l’identifiant de session du servlet est renouvelé, un nouveau jeton CSRF est émis, et les buckets de limite de débit de l’IP appelante et de l’utilisateur cible sont réinitialisés. En cas de dépassement de la limite de débit, un en-tête Retry-After (en secondes) est ajouté.
Même pour une session déjà authentifiée, aucun court-circuit n’est appliqué : les informations d’authentification transmises sont toujours vérifiées.
return_to doit être un chemin relatif correspondant à ^/[A-Za-z0-9_\-/.?&=%:@+~#*!,;]*$. De plus, les chemins relatifs aux protocoles (commençant par //) et les chemins contenant des caractères de contrôle ASCII sont rejetés et silencieusement supprimés de la réponse.
Note
Ce point de terminaison est exclu de la vérification CSRF (car aucun jeton n’existe avant la connexion).
Note
Contrairement aux autres points de terminaison de modification d’état, ce point de terminaison regroupe les corps de requête trop grands et les Content-Type non pris en charge dans 400 invalid_request (les autres points de terminaison retournent 413 / 415).
Corps de la requête (LoginRequest)
Le Content-Type est application/json.
Exemple de requête :
Réponse
En cas de succès (HTTP 200, LoginResponse), une réponse au format d’enveloppe commune est retournée.
Les détails de chaque élément de response sont les suivants.
| Champ | Type | Description |
|---|---|---|
user | object | UserPayload. |
csrf_token | string | Nouveau jeton CSRF associé à la nouvelle session. (Obligatoire) |
return_to | string | Renvoyé uniquement si la valeur de la requête a passé la liste d’autorisation. |
Réponse d’erreur
Déconnexion
Requête
| Méthode HTTP | POST |
| Point de terminaison | /api/v2/auth/logout |
Déconnecte l’utilisateur. Cette opération est idempotente : en l’absence de session active, elle ne fait rien et ne retourne pas d’erreur. Retourne toujours ok: true.
L’en-tête X-Fess-CSRF-Token est requis.
Réponse
En cas de succès (HTTP 200, OkResponse), une réponse au format d’enveloppe commune est retournée.
Les détails de chaque élément de response sont les suivants.
Réponse d’erreur
Changement de mot de passe
Requête
| Méthode HTTP | POST |
| Point de terminaison | /api/v2/auth/password |
Modifie le mot de passe de l’utilisateur courant. Valide current_password, applique la politique de mot de passe configurée à new_password, invalide la session courante et invite la SPA à rediriger vers la page de connexion via re_login_required: true.
Comme la session est détruite côté serveur, csrf_token n’est pas retourné. La SPA doit obtenir un nouveau jeton après une nouvelle authentification.
L’en-tête X-Fess-CSRF-Token est requis.
Corps de la requête (PasswordChangeRequest)
Le Content-Type est application/json.
Réponse
En cas de succès (HTTP 200), une réponse au format d’enveloppe commune est retournée.
Les détails de chaque élément de response sont les suivants.