Aller au contenu

API Auth

L’API Pionne utilise Laravel Sanctum. Après login, tu reçois un token à passer dans Authorization: Bearer <token> pour toutes les routes protégées.

Base URL : https://api.pionne.app

Crée un compte. Démarre automatiquement un essai de 30 jours.

{
"email": "you@example.com",
"password": "min8chars",
"name": "Jane Doe"
}
{
"user": {
"id": "usr_a1b2c3",
"email": "you@example.com",
"name": "Jane Doe",
"trial_ends_at": "2026-06-04T12:00:00Z"
},
"token": "1|abcXYZ..."
}
  • 422 — Email déjà pris ou format invalide.
{
"email": "you@example.com",
"password": "..."
}
X-Pionne-Client: cli | mobile | web

L’API nomme le Sanctum token créé d’après ce header (mobile par défaut). Sur chaque login, les autres tokens du même type sont révoqués, ce qui maintient une seule session active par client. Re-lancer le wizard CLI (X-Pionne-Client: cli) ou se reconnecter sur mobile invalide automatiquement la session précédente du même type. Les autres types ne sont pas touchés.

{
"user": { "id": "usr_a1b2c3", "email": "you@example.com", "name": "Jane Doe" },
"token": "2|defGHI..."
}

Si le compte a la 2FA activée, l’API renvoie d’abord un challenge :

{ "requires_totp": true, "totp_token": "pionne_totp_xxxxxx" }

Tu fais ensuite POST /api/auth/login/totp avec { totp_token, code } (ou recovery_code) pour récupérer le vrai Sanctum token. Même règle de nommage / révocation s’applique selon X-Pionne-Client.

  • 401 — Email/mot de passe incorrect.
  • 429 — Trop de tentatives (rate limit).

Révoque le token courant.

Authorization: Bearer <token>

Pas de body.

Renvoie l’utilisateur courant.

Authorization: Bearer <token>
{
"id": "usr_a1b2c3",
"email": "you@example.com",
"name": "Jane Doe",
"subscription": {
"status": "trialing",
"trial_ends_at": "2026-06-04T12:00:00Z",
"plan": "monthly"
}
}

Trois endpoints permettent de lister et révoquer les Sanctum tokens du compte courant. Utilisés par l’écran Compte → Réglages → Sécurité → Sessions actives dans pionne-app.

Liste tous les tokens du compte (mobile, CLI, web), du plus récent au plus ancien. Le token utilisé pour faire l’appel est marqué is_current: true.

{
"tokens": [
{
"id": 14,
"name": "cli",
"created_at": "2026-05-07T16:46:00Z",
"last_used_at": "2026-05-07T16:46:01Z",
"is_current": false
},
{
"id": 13,
"name": "mobile",
"created_at": "2026-05-07T15:10:00Z",
"last_used_at": "2026-05-07T17:30:00Z",
"is_current": true
}
]
}

Révoque le token spécifié. Refuse de révoquer le token courant (422 cannot_revoke_current) — utilise /auth/logout à la place.

Révoque tous les tokens du compte sauf celui qui fait l’appel. Pratique après une fuite de token suspectée. Renvoie le compte révoqué :

{ "revoked_count": 7 }