Référence API
Documentation complète de tous les endpoints OAuth 2.0 et OpenID Connect.
URL de base
https://account.groupeoctal.com
Tous les endpoints doivent être appelés en HTTPS. Les requêtes HTTP sont rejetées en production.
Endpoints disponibles
Token Endpoint
POST
https://account.groupeoctal.com/oauth/token
Échange un code d'autorisation contre des tokens d'accès. Doit être appelé côté serveur uniquement.
Corps de la requête application/x-www-form-urlencoded
| Paramètre | Requis | Description |
|---|---|---|
| grant_type | Requis | authorization_code |
| code | Requis | Code reçu en callback |
| redirect_uri | Requis | Même URL que lors de l'autorisation |
| client_id | Requis | Votre Client ID |
| client_secret | Requis | Votre Client Secret (côté serveur uniquement) |
| code_verifier | Si PKCE | Code verifier original (PKCE) |
Réponse
{
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9...",
"token_type": "Bearer",
"expires_in": 3600, // secondes
"refresh_token": "def50200abc...",
"scope": "openid profile email"
}
UserInfo Endpoint
GET
https://account.groupeoctal.com/oauth/userinfo
Retourne les informations du profil de l'utilisateur authentifié. Requiert le scope profile.
Header requis
Authorization: Bearer YOUR_ACCESS_TOKEN
Réponse
{
"sub": "12345", // identifiant unique Octal
"name": "Jean Dupont",
"email": "jean_dupont@mail8g.com",
"email_verified": true,
"phone": "+22901234567", // si disponible
"avatar": "https://account.groupeoctal.com/storage/avatars/...",
"updated_at": "2025-01-15T10:30:00Z"
}
Renouveler un token (Refresh)
POST
https://account.groupeoctal.com/oauth/token
grant_type = refresh_token refresh_token = VOTRE_REFRESH_TOKEN client_id = OCTAL_CLIENT_ID client_secret = OCTAL_CLIENT_SECRET
Les refresh tokens expirent après 30 jours d'inactivité. Un nouveau refresh token est retourné à chaque renouvellement.
Révoquer un token
POST
https://account.groupeoctal.com/oauth/token/revoke
Invalide un access token ou refresh token. Appelez cet endpoint lors de la déconnexion de l'utilisateur.
token = TOKEN_À_RÉVOQUER token_type_hint = access_token // ou refresh_token client_id = OCTAL_CLIENT_ID client_secret = OCTAL_CLIENT_SECRET
Scopes disponibles
| Scope | Description | Champs retournés |
|---|---|---|
| openid | Authentification OpenID Connect | sub |
| profile | Informations de profil | name, avatar, updated_at |
| Adresse email Octal Group | email, email_verified | |
| phone | Numéro de téléphone (si renseigné) | phone |
Codes d'erreur
| Code HTTP | error | Cause |
|---|---|---|
| 400 | invalid_request | Paramètre manquant ou invalide |
| 401 | invalid_client | Client ID ou Secret invalide |
| 401 | invalid_token | Access token expiré ou révoqué |
| 400 | invalid_grant | Code expiré, déjà utilisé, ou redirect_uri incorrect |
| 403 | access_denied | L'utilisateur a refusé l'autorisation |
| 429 | rate_limited | Trop de requêtes (limite : 60/min/IP) |