Authentification API
Guide complet d'authentification pour l'API Kiwisocial.
Vue d'ensemble
L'API Kiwisocial utilise un système d'authentification par tokens pour sécuriser les requêtes. Chaque utilisateur reçoit un token d'authentification après connexion, qui doit être inclus dans toutes les requêtes API.
Méthodes d'authentification
1. Connexion standard (Email + Mot de passe)
Endpoint
POST /mobile_api/login
Paramètres
| Paramètre | Type | Requis | Description |
|---|---|---|---|
email |
string | Oui | Adresse email de l'utilisateur |
password |
string | Oui | Mot de passe de l'utilisateur |
device_type |
string | Non | Type d'appareil : ios ou android (défaut: android) |
Réponse de succès (200)
{
"code": 200,
"message": "User logged in successfully",
"data": {
"id": 7,
"first_name": "John",
"last_name": "Doe",
"user_name": "johndoe",
"email": "[email protected]",
"is_verified": true,
...
},
"auth": {
"auth_token": "c625cc16eb00960f076c1378c7b84ede...",
"refresh_token": "de25cc16eb00960f076c1378c7b84ede...",
"auth_token_expiry": 1916742375
}
}
Réponses d'erreur
- 402 : Identifiants incorrects
- 402 : Type d'appareil incorrect
2. Connexion OAuth (Social Login)
Endpoint
POST /mobile_api/oauth
Paramètres
| Paramètre | Type | Requis | Description |
|---|---|---|---|
access_token |
string | Oui | Token d'accès OAuth du fournisseur |
type |
string | Oui | Fournisseur OAuth : facebook ou google |
device_type |
string | Non | Type d'appareil : ios ou android (défaut: android) |
Fournisseurs supportés
- Facebook : Connexion via Facebook OAuth
- Google : Connexion via Google OAuth
Réponse de succès (200)
{
"code": 200,
"message": "User logged in successfully",
"data": { ... },
"auth": {
"auth_token": "c625cc16eb00960f076c1378c7b84ede...",
"refresh_token": "de25cc16eb00960f076c1378c7b84ede...",
"auth_token_expiry": 1916742375
}
}
Réponses d'erreur
- 402 : Token d'accès invalide ou manquant
- 400 : Type de fournisseur OAuth manquant ou invalide
- 500 : Erreur API - API indisponible
Gestion des tokens
Token d'authentification (auth_token)
Le token d'authentification est un identifiant de session unique qui doit être inclus dans toutes les requêtes API authentifiées.
Utilisation
Incluez le token dans vos requêtes via le paramètre session_id :
POST /mobile_api/get_notifications
{
"session_id": "c625cc16eb00960f076c1378c7b84ede..."
}
Token de rafraîchissement (refresh_token)
Le token de rafraîchissement permet de générer un nouveau token d'authentification lorsque celui-ci expire, sans avoir à redemander les identifiants de l'utilisateur.
Endpoint de rafraîchissement
POST /mobile_api/refresh_access_token
Paramètres
| Paramètre | Type | Requis | Description |
|---|---|---|---|
refresh_token |
string | Oui | Token de rafraîchissement reçu lors de la connexion |
Réponse de succès (200)
{
"code": 200,
"message": "Token refreshed successfully",
"data": {
"auth_token": "bc93431b2120eb63650e69a526ca100a...",
"refresh_token": "37d5bf2ebd34d49a3fa2d3f146486c0b...",
"auth_token_expiry": 1636655043
}
}
Réponse d'erreur
- 400 : Token invalide ou compte utilisateur désactivé
Expiration des tokens
Chaque token d'authentification a une durée de validité limitée, indiquée par le champ auth_token_expiry
(timestamp Unix). Lorsque le token expire, utilisez le refresh_token pour en obtenir un nouveau.
Bonnes pratiques
Sécurité
- Stockage sécurisé : Ne stockez jamais les tokens en clair. Utilisez un stockage sécurisé (Keychain, KeyStore)
- HTTPS uniquement : Toutes les requêtes API doivent être effectuées via HTTPS
- Ne pas partager : Les tokens sont personnels et ne doivent jamais être partagés
- Rotation des tokens : Rafraîchissez régulièrement vos tokens avant expiration
Gestion des erreurs
- 401 Unauthorized : Token expiré ou invalide → Utilisez le refresh_token
- 402 Incorrect Credentials : Identifiants incorrects → Vérifiez email/mot de passe
- 500 Server Error : Erreur serveur → Réessayez plus tard
Optimisation
- Cache des tokens : Conservez les tokens en mémoire pendant leur validité
- Rafraîchissement proactif : Rafraîchissez le token avant son expiration
- Gestion des sessions : Implémentez une déconnexion propre en supprimant les tokens stockés
Exemple d'implémentation
Flux d'authentification complet
// 1. Connexion initiale
POST /mobile_api/login
{
"email": "[email protected]",
"password": "password123",
"device_type": "android"
}
// 2. Stocker les tokens reçus
{
"auth_token": "abc123...",
"refresh_token": "def456...",
"auth_token_expiry": 1916742375
}
// 3. Utiliser le token pour les requêtes
POST /mobile_api/get_notifications
{
"session_id": "abc123..."
}
// 4. Rafraîchir le token avant expiration
POST /mobile_api/refresh_access_token
{
"refresh_token": "def456..."
}
// 5. Recevoir de nouveaux tokens
{
"auth_token": "ghi789...",
"refresh_token": "jkl012...",
"auth_token_expiry": 1948278375
}