api auth desc

master
remrem 2 years ago
parent 0a5913e152
commit ad62daf38f

@ -3,6 +3,9 @@
## Links
- [CRUD](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete)
- [HTTP Status Codes](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status)
- [JWT.io](https://jwt.io/)
- [php_jwt](https://github.com/firebase/php-jwt)
- [Slim](https://www.slimframework.com/)
## Rappel
**GET**: Récupère la ressource demandé.
@ -22,3 +25,33 @@ 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:
```json
{
"alg": "HS256",
"typ": "JWT"
},
{
"uuid": "15833c57-cd14-46f1-8334-e1f064847e1b",
"exp": 1698312785
}
```
Signature:
```
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
SERVER_SECRET_SYMETRIC_KEY
)
```
Loading…
Cancel
Save