Le schéma utilisateur définit la structure des données pour un utilisateur dans la base de données.
- email (String): Email de l'utilisateur
- password (String): Mot de passe de l'utilisateur.
- id (string): ID de l'utilisateur généré par l'api.
- id (string): ID de l'utilisateur généré par l'api.
- favs (Array) array d'id de musique
L'authentification est gérée par un token JWT (JSON Web Token) qui est généré lors de la connexion ou l'inscription d'un utilisateur.
Il doit être envoyé dans le header de chaque requête pour les routes protégées, sous forme de "Bearer {TOKEN}"
.
ℹ️ Le token est construit à partir de l'id de l'utilisateur (id) pour une durée de 24h
- 🔐 = La route nécessite un token JWT valide dans le header de la requête.
Prefix:
/auth
Cette route permet de créer un nouvel utilisateur dans la base de données, il chiffre également le mot de passe de l'utilisateur avant de le stocker dans la base de données. Si un utilisateur avec la même adresse e-mail existe déjà, la requête échouera. Le serveur renvoie un token JWT qui permettra à l'utilisateur de s'authentifier sur les routes protégées.
- email (String, required): Adresse e-mail de l'utilisateur.
- password (String, required): Mot de passe de l'utilisateur.
- firstName (String, required): Prénom de l'utilisateur.
- lastName (String, required): Nom de famille de l'utilisateur.
{
"email": "[email protected]",
"password": "myPassword123",
}
{
"token": "eg.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY1NzQzYWNmZWI0NjU3MTU0Yjg1Y2VjMyIsImlhdCI6MTcwMjExNjA0NywiZXhwIjoxNzAyMjAyNDQ3fQ.hQ2Om2eiNVPquH9npiCC9hOUy3hoizsFVt8QACCPolU",
"email": "[email protected]",
}
- 201 OK: Utilisateur créé avec succès.
- 400 Bad Request: Mauvaise requête, paramètres manquants ou invalides.
- 401 Unauthorized: Mauvais identifiants.
- 500 Internal Server Error: Erreur interne du serveur.
Cette route permet de connecter un utilisateur existant à l'application. Si les identifiants sont corrects, le serveur renvoie un token JWT qui permettra à l'utilisateur de s'authentifier sur les routes protégées.
- email (String, required): Adresse e-mail de l'utilisateur.
- password (String, required): Mot de passe de l'utilisateur.
{
"token": "eg.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY1NzQzYWNmZWI0NjU3MTU0Yjg1Y2VjMyIsImlhdCI6MTcwMjExNjA0NywiZXhwIjoxNzAyMjAyNDQ3fQ.hQ2Om2eiNVPquH9npiCC9hOUy3hoizsFVt8QACCPolU",
"email": "[email protected]",
}
- 200 OK: Connexion réussie.
- 400 Bad Request: Mauvaise requête, paramètres manquants ou invalides.
- 401 Unauthorized: Mauvais identifiants.
- 500 Internal Server Error: Erreur interne du serveur.
Prefix:
/user
Cette route permet à un utilisateur de recuperer ses informations.
- Authorization (String, required): Token JWT pour l'authentification.
- id (String): id de l'utilisateur.
- email (String): email de l'utilisateur.
{
"id": "id",
"email": "[email protected]",
}
- 200 OK: Informations de l'utilisateur recuperée avec succès.
- 401 Unauthorized: Mauvais token JWT.
- 500 Internal Server Error: Erreur interne du serveur.
Cette route permet à un utilisateur de modifier ses informations.
- Authorization (String, required): Token JWT pour l'authentification.
- email (String): Nouvelle adresse e-mail de l'utilisateur.
- password (String): Nouveau mot de passe de l'utilisateur.
{
"token": "eg.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY1NzQzYWNmZWI0NjU3MTU0Yjg1Y2VjMyIsImlhdCI6MTcwMjExNjA0NywiZXhwIjoxNzAyMjAyNDQ3fQ.hQ2Om2eiNVPquH9npiCC9hOUy3hoizsFVt8QACCPolU",
"email": "[email protected]",
}
- 200 OK: Informations de l'utilisateur mises à jour avec succès.
- 401 Unauthorized: Mauvais token JWT.
- 500 Internal Server Error: Erreur interne du serveur.
Cette route permet à un utilisateur de supprimer son compte.
- Authorization (String, required): Token JWT pour l'authentification.
{
"ok": true,
}
- 200 OK: Compte utilisateur supprimé avec succès.
- 401 Unauthorized: Mauvais token JWT.
- 500 Internal Server Error: Erreur interne du serveur.
Prefix:
/fav
Cette route permet de recuperer les musiques favorites du user
- Authorization (String, required): Token JWT pour l'authentification.
{
"ok": true,
"data": [
{
"link": "exemple"
},
...
]
}
- 200 OK: Favoris recupérés avec succes.
- 401 Unauthorized: Mauvais token JWT.
- 500 Internal Server Error: Erreur interne du serveur.
Cette route permet à un utilisateur de creer un favori.
- Authorization (String, required): Token JWT pour l'authentification.
{
"link": "exemple",
}
{
"ok": true,
}
- 200 OK: favori crée avec succes.
- 401 Unauthorized: Mauvais token JWT.
- 500 Internal Server Error: Erreur interne du serveur.