From 17ae90ec0508d0009c12a10352c1044303b05905 Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Thu, 16 Jul 2020 14:36:55 +0200 Subject: [PATCH] update readme --- README.md | 48 ++++++++++++++++++++++++++++----------- internal/router/router.go | 1 + 2 files changed, 36 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 8d2e453..1f206c1 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,13 @@ # Go-JWTServer -Serveur de gestion d'utilisateur et fournissant un token jwt. +Go-JWTServer met a disposition : + - Un serveur de stockage de utilisateur sous postgres et d'authenfication Jwt + - Un middleware d'authentification Jwt Dépendances: docker, docker-compose +## Serveur -## Configuration +### Configuration Editer le ficher `.env` ``` @@ -21,8 +24,35 @@ db_host="localhost" token_password="NotSoSecretJwtSecretPassword" ``` +### Executer le serveur +Lancer le conteneur postgres +```make up``` + + +Dans une autre console, lancer le serveur jwt +```make run``` + +## Middleware +Le middleware permet d'enregistrer et d'authentifier un utilisateur et +de vérifier la validité du token Jwt + +##### Exemple + +``` +r := chi.NewRouter() + +//add Jwt Authentification +r.Use(jwtmiddleware.JwtAuthentication) + +.Route("/api/", func(r chi.Router) { + //Middleware routes + r.Post("/user/new", jwtmiddleware.CreateAccount) + r.Post("/user/login", jwtmiddleware.Authenticate) +}) +``` + ## API -#### Enregistrer un utilisateur +##### Enregistrer un utilisateur ``` POST {{host}}/api/user/new content-type: application/json @@ -32,7 +62,7 @@ content-type: application/json "password": "test" } ``` -#### Authentifier un utilisateur +##### Authentifier un utilisateur ``` POST {{host}}/api/user/login content-type: application/json @@ -42,7 +72,7 @@ content-type: application/json "password": "test" } ``` -#### Réponse +##### Réponse ``` { "account": { @@ -58,11 +88,3 @@ content-type: application/json "status": true } ``` - -## Executer le serveur -Lancer le conteneur postgres -```make up``` - - -Dans une autre console, lancer le serveur jwt -```make run``` \ No newline at end of file diff --git a/internal/router/router.go b/internal/router/router.go index 02879c7..f4746ae 100644 --- a/internal/router/router.go +++ b/internal/router/router.go @@ -15,6 +15,7 @@ func InitializeRouter() chi.Router { r.Use(middleware.Logger) r.Use(middleware.Recoverer) r.Use(middleware.URLFormat) + r.Use(jwtmiddleware.JwtAuthentication) r.Use(middleware.Timeout(60 * time.Second))