Authentification
L'API Coin du Chef utilise OAuth2 avec le flux "password" pour l'authentification. L'authentification permettra d'acceder a des endpoints proteges.
Inscription d'un utilisateur
Endpoint :
POST /register
Ce endpoint permet d'enregistrer un utilisateur sur le systeme CDC, ce qui permettra apres d'obtenir un token et d'acceder a des endpoints demande d'etre authentifie.
Corps de la requête :
{
"prenom": "Jean",
"nom": "Dupont",
"courriel": "jean.dupont@example.com",
"mot_de_passe": "motdepasse123",
"role": "UTILISATEUR"
}
Rôles disponibles :
ADMINMODERATEURUTILISATEURN.B: La gestion du role administratif se fera uniquement a l'interne.
Réponse
201 - Created
{
"id": 1,
"prenom": "Jean",
"nom": "Dupont",
"courriel": "jean.dupont@example.com",
"role": "UTILISATEUR",
"created_at": "2024-01-01T00:00:00",
"updated_at": "2024-01-01T00:00:00"
}
400 Bad Request
Données invalides ou utilisateur déjà existant
Connexion (Obtenir un token)
Ce endpoint permet a l'utilisateur d'obtenir un token une fois que ses informations de connexions sont correctes
Endpoint :
POST /token
Type : application/x-www-form-urlencoded
Paramètres :
- username : Le courriel de l'utilisateur
- password : Le mot de passe
- grant_type : password (géré automatiquement par OAuth2)
Exemple avec curl :
curl -X POST "https://kellydev.io/coinduchef-auth/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=jean.dupont@example.com&password=motdepasse123"
Réponse
200 - OK:
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer"
}
401 Unauthorized:
Identifiants incorrects
Durée de validité : Les tokens fournissent lors des connexions ont une duree de vie 30 minutes, depasser ce delai le token n'est plus valide.
Utiliser le token
Pour accéder aux endpoints protégés, inclut le token dans l'en-tête Authorization :
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Endpoints protégés
POST /recettes/- Créer une recettePUT /recettes/{recette_id}- Modifier une recettePATCH /recettes/{recette_id}/status- Modifier le statut d'une recetteGET /utilisateursGET /utilisateurs/{id}GET /utilisateurs/courriel/{courriel}POST /utilisateursPUT /utilisateurs/{id}PATH /utilisateurs/{id}?q=XXXDELETE /utilisateurs/{id}
Obtenir l'utilisateur courant
L'api d'auth CDD offre un endpoint qui permet d'obtenir les informations d'un utilisateur a partir d'un token valide fourni.
Endpoint :
GET /users/me/
Headers requis
Authorization: Bearer {token}
Réponse
200 - OK:
{
"id": 1,
"prenom": "Jean",
"nom": "Dupont",
"courriel": "jean.dupont@example.com",
"role": "UTILISATEUR",
"created_at": "2024-01-01T00:00:00",
"updated_at": "2024-01-01T00:00:00"
}
400 - Bad Request
{
"detail": "Token invalide ou vide."
}