Aller au contenu

Authentification

Tous les endpoints d’authentification sont préfixés par /api/v1/auth/. Utilisez l’en-tête Authorization: Bearer <token> pour les requêtes authentifiées.

MéthodeCheminDescriptionAuth
GET/v1/healthVérification de l’état du service (public)Non
POST/v1/auth/registerCréer un nouveau compteNon
POST/v1/auth/loginS’authentifier et obtenir un tokenNon
POST/v1/auth/verifyVérifier l’adresse emailNon
POST/v1/auth/forgot-passwordDemander un email de réinitialisation de mot de passeNon
POST/v1/auth/reset-passwordRéinitialiser le mot de passe avec un tokenNon
POST/v1/auth/passkey/authenticate-optionsObtenir un défi de connexion WebAuthnNon
POST/v1/auth/passkey/authenticateFinaliser la connexion WebAuthnNon
POST/v1/auth/logoutRévoquer le token actuelOui
POST/v1/auth/logout-allRévoquer tous les tokens sauf le token actuelOui
POST/v1/auth/refreshÉmettre un nouveau tokenOui
GET/v1/auth/tokensLister tous les tokens actifsOui
POST/v1/auth/revoke-tokenRévoquer un token spécifiqueOui
POST/v1/auth/passkeys/register-optionsObtenir un défi d’enregistrement WebAuthnOui
POST/v1/auth/passkeys/registerEnregistrer une nouvelle passkeyOui
GET/v1/auth/passkeysLister les passkeysOui
PUT/v1/auth/passkeys/{passkey}Renommer une passkeyOui
DELETE/v1/auth/passkeys/{passkey}Supprimer une passkeyOui
POST /v1/auth/register

Corps de la requête :

ChampTypeRègles
namestringrequis
emailstringrequis, email valide, unique
passwordstringrequis, 12 caractères minimum
password_confirmationstringrequis, doit correspondre à password

Limité à 10 requêtes par heure et par IP.

POST /v1/auth/login

Corps de la requête :

ChampTypeRègles
emailstringrequis
passwordstringrequis

Limité à 5 requêtes par minute et par email/IP.

Réponse (200) :

{
"success": true,
"data": {
"token": "1|abc123...",
"token_type": "Bearer",
"token_expires_at": "2026-06-27T00:00:00Z",
"user": { "id": 1, "name": "...", "email": "..." }
}
}
POST /v1/auth/verify

Corps de la requête :

ChampTypeRègles
user_idstringrequis
tokenstringrequis
POST /v1/auth/forgot-password

Envoie un lien de réinitialisation de mot de passe (valide 60 minutes). Limité à 10 requêtes par heure et par IP.

ChampTypeRègles
emailstringrequis
platformstringoptionnel (web/mobile/desktop)
POST /v1/auth/reset-password
ChampTypeRègles
tokenstringrequis
emailstringrequis
passwordstringrequis, 12 caractères minimum

Connexion et gestion des passkeys WebAuthn.

MéthodeCheminDescription
POST/v1/auth/passkey/authenticate-optionsObtenir un défi de connexion
POST/v1/auth/passkey/authenticateFinaliser la connexion
POST/v1/auth/passkeys/register-optionsObtenir un défi d’enregistrement
POST/v1/auth/passkeys/registerEnregistrer une nouvelle passkey
GET/v1/auth/passkeysLister les passkeys
PUT/v1/auth/passkeys/{passkey}Renommer une passkey (name)
DELETE/v1/auth/passkeys/{passkey}Supprimer une passkey

L’authentification par passkey est limitée à 10 requêtes par minute et par IP/email.

GET /v1/health

Vérification publique de l’état du service. Retourne status, timestamp, app et version.

POST /v1/auth/logout

Révoque le token utilisé dans l’en-tête Authorization.

POST /v1/auth/logout-all

Révoque tous les tokens sauf celui qui effectue la requête.

POST /v1/auth/refresh

Retourne un nouveau token. L’ancien token est révoqué.

Réponse (200) :

{
"success": true,
"data": {
"token": "2|def456...",
"token_type": "Bearer",
"token_expires_at": "2026-07-27T00:00:00Z"
}
}
GET /v1/auth/tokens

Retourne tous les tokens actifs de l’utilisateur authentifié. Chaque token inclut un booléen is_current.

POST /v1/auth/revoke-token

Corps de la requête :

ChampTypeRègles
token_idintegerrequis