Skip to content

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 :

  • ADMIN
  • MODERATEUR
  • UTILISATEUR N.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 recette
  • PUT /recettes/{recette_id} - Modifier une recette
  • PATCH /recettes/{recette_id}/status - Modifier le statut d'une recette
  • GET /utilisateurs
  • GET /utilisateurs/{id}
  • GET /utilisateurs/courriel/{courriel}
  • POST /utilisateurs
  • PUT /utilisateurs/{id}
  • PATH /utilisateurs/{id}?q=XXX
  • DELETE /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."
}