API
Links
Rappel
GET: Récupère la ressource demandé.
HEAD: GET - body.
POST: Création d'une ressource envoyé dans le body.
PUT: POST + remplacement.
PATCH: Modification d'une ressource.
DELETE: Supprime la ressource spécifié.
Endpoints
POST /user/ Création d'un user.
DELETE /user/{token} Suppression d'un user.
GET /user/{uuid}/{hash}/token Récupération d'un token valide.
GET /user/{token}/files Récupération de la liste des fichier de donnée.
POST /user/{token}/files Upload d'un fichier par un user.
GET /user/{token}/files/{file_uuid} Récupération d'un fichier par user.
DELETE /user/{token}/files/{file_uuid} Suppression d'un fichier par user.
PUT /user/{token}/mail Modification de l'email.
PUT /user/{token}/username Modification du username.
Authentification
Les JWT sont composé de trois partie dont deux contenant des données: header et payload.
La troisième partie est la signature du JWT, elle peut utiliser une clé symétrique
ou asymétrique.
Dans notre cas nous utilisons une clé symétrique pour vérifier la signature du token
de l'utilisateur.
Si la signature n'est pas vérifié -> Erreur -> refait la connection.
Si vérifié -> OK -> utilise le uuid dans le token pour request la bdd.
Structure du token:
{
"alg": "HS256",
"typ": "JWT"
},
{
"uuid": "15833c57-cd14-46f1-8334-e1f064847e1b",
"exp": 1698312785
}
Signature:
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
SERVER_SECRET_SYMETRIC_KEY
)