Authentification
Apprenez Ă vous authentifier avec l'API YODI.
Aperçu​
YODI propose plusieurs méthodes d'authentification :
- Authentification par clé API - Pour la communication serveur à serveur
- Connexion par email/mot de passe - Pour les comptes utilisateurs
- Google OAuth - Pour la connexion via des services tiers
Authentification par clé API​
C'est la méthode principale pour consommer les API YODI.
Comment ça fonctionne​
Chaque requête vers l'API YODI doit inclure votre clé API dans l'en-tête Authorization :
Authorization: Bearer YOUR_API_KEY
Exemple​
curl -X POST "https://admin.yodi.tg/api/ai/translate" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "Bonjour",
"sourceLanguage": "fra_Latn",
"targetLanguage": "ewe_Latn"
}'
Authentification utilisateur​
Connexion (email et mot de passe)​
Endpoint : POST /auth/login
curl -X POST "https://admin.yodi.tg/api/auth/login" \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com",
"password": "your_password"
}'
Réponse :
{
"message": "LOGIN_SUCCESS",
"error": false,
"data": {
"id": 1,
"email": "user@example.com",
"name": "John Doe",
"role": "viewer",
"isSubscribe": false
},
"status": 200
}
Créer un compte​
Endpoint : POST /auth/register
curl -X POST "https://admin.yodi.tg/api/auth/register" \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com",
"name": "John Doe",
"password_hash": "P@ssword123"
}'
Réponse :
{
"message": "CONFIRMATION_LINK_SENT",
"error": false,
"data": {
"id": 1,
"email": "user@example.com",
"name": "John Doe",
"role": "viewer"
},
"status": 201
}
Connexion OAuth (Google)​
Endpoint : POST /auth/google
curl -X POST "https://admin.yodi.tg/api/auth/google" \
-H "Content-Type: application/json" \
-d '{
"token": "google-oauth-id-token"
}'
Réponse :
{
"message": "LOGIN_SUCCESS",
"error": false,
"data": {
"id": 1,
"email": "user@gmail.com",
"name": "John Doe",
"role": "viewer"
},
"status": 200
}
Gestion des mots de passe​
Mot de passe oublié​
Endpoint : POST /auth/forgot-password
curl -X POST "https://admin.yodi.tg/api/auth/forgot-password" \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com"
}'
Réponse :
{
"message": "RESET_LINK_SENT",
"error": false,
"data": null,
"status": 200
}
Un lien de réinitialisation sera envoyé à l'adresse email fournie.
Réinitialiser le mot de passe​
Endpoint : POST /auth/reset-password
curl -X POST "https://admin.yodi.tg/api/auth/reset-password" \
-H "Content-Type: application/json" \
-d '{
"token": "reset-token",
"newPassword": "NewP@ssword456"
}'
Réponse :
{
"message": "PASSWORD_RESET_SUCCESS",
"error": false,
"data": null,
"status": 200
}
Gestion des sessions​
Obtenir l'utilisateur actuel​
Endpoint : GET /auth/me
curl -X GET "https://admin.yodi.tg/api/auth/me" \
-H "Authorization: Bearer YOUR_API_KEY"
Réponse :
{
"message": "SUCCESS",
"error": false,
"data": {
"id": 1,
"email": "user@example.com",
"name": "John Doe",
"role": "viewer",
"isSubscribe": false,
"created_at": "2024-01-01T00:00:00.000Z"
},
"status": 200
}
Confirmer l'email​
Endpoint : GET /auth/confirm?token=...
Confirmez votre adresse email en utilisant le token reçu lors de l'inscription :
curl -X GET "https://admin.yodi.tg/api/auth/confirm?token=your_confirmation_token" \
-H "Authorization: Bearer YOUR_API_KEY"
Réponse :
{
"message": "ACCOUNT_CONFIRMED",
"error": false,
"data": null,
"status": 200
}
Déconnexion​
Endpoint : POST /auth/logout
curl -X POST "https://admin.yodi.tg/api/auth/logout" \
-H "Authorization: Bearer YOUR_API_KEY"
Réponse :
{
"message": "LOGOUT_SUCCESS",
"error": false,
"data": null,
"status": 200
}
Bonnes pratiques de sécurité​
Ă€ FAIRE :
-
Stockez les clés API dans des variables d'environnement
-
Utilisez HTTPS pour toutes les requĂŞtes
-
Renouvelez les clés API périodiquement
-
Utilisez des clés différentes pour le développement et la production
-
Surveillez l'utilisation des clés dans votre tableau de bord
Ă€ NE PAS FAIRE :
-
Committez les clés API dans le contrôle de version
-
Partagez votre clé API par email ou chat
-
Utilisez la même clé sur plusieurs services
-
Exposez les clés dans du code côté client
-
Codez en dur les clés dans votre application