From 6a815a3d9e9223a352e51d09a19a782790cad9c6 Mon Sep 17 00:00:00 2001 From: charleslemaux <146107581+charleslemaux@users.noreply.github.com> Date: Wed, 2 Oct 2024 19:49:53 +0200 Subject: [PATCH] [+] README.md --- README.md | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..8e6550d --- /dev/null +++ b/README.md @@ -0,0 +1,134 @@ + +# Template d'API .NET avec Authentification JWT 🚀 + +## PrĂ©sentation + +Cette API simple est construite avec ASP.NET Core et permet de gĂ©rer diverses routes et protocoles. Elle inclut un systĂšme d'authentification basĂ© sur les JSON Web Tokens (JWT) pour sĂ©curiser les requĂȘtes. 🔐 + +## FonctionnalitĂ©s + +- **API RESTful** : Prend en charge les mĂ©thodes HTTP standards (GET, POST, PUT, DELETE). 🌐 +- **Authentification JWT** : SĂ©curisez vos points de terminaison API avec des jetons JWT. đŸ›Ąïž +- **Gestion des Routes** : FacilitĂ© de gestion et de dĂ©finition des routes pour votre application. 📍 +- **Support Multi-Protocole** : GĂšre plusieurs protocoles pour la flexibilitĂ© des requĂȘtes. 🔄 + +## Installation + +### PrĂ©requis + +- [.NET SDK](https://dotnet.microsoft.com/download) (version 8.0 ou supĂ©rieure) đŸ’» +- [Visual Studio Code](https://code.visualstudio.com/) ou [JetBrains Rider](https://www.jetbrains.com/rider/) pour le dĂ©veloppement đŸ› ïž +- [MySQL Server](https://www.mysql.com/) pour la base de donnĂ©es đŸ’Ÿ + +### Forker le projet + +1. **Forker le dĂ©pĂŽt** : + - Allez sur la page du projet sur GitHub et cliquez sur le bouton **Fork** en haut Ă  droite pour crĂ©er votre propre copie du projet. + +2. **Cloner votre fork** : + - Ouvrez votre terminal et exĂ©cutez la commande suivante : + ```bash + git clone https://github.com/votre-utilisateur/votre-repo.git + cd votre-repo + ``` + +3. **Installer les dĂ©pendances** : + ```bash + dotnet restore + ``` + +### Configurer votre base de donnĂ©es MySQL + +1. **CrĂ©er une base de donnĂ©es MySQL** : + - Utilisez un outil comme MySQL Workbench ou un terminal pour crĂ©er une nouvelle base de donnĂ©es. + +2. **Modifier la chaĂźne de connexion** : + - Ouvrez le fichier `appsettings.json` dans votre projet et modifiez la section `ConnectionStrings` pour y inclure vos informations de connexion : + ```json + { + "ConnectionStrings": { + "DefaultConnection": "Server=localhost;Database=nom_de_votre_base;User=utilisateur;Password=motdepasse;" + } + } + ``` + +## Utilisation + +### Lancer l'API + +Pour dĂ©marrer l'application, exĂ©cutez la commande suivante : + +```bash +dotnet run +``` + +L'API sera accessible Ă  l'adresse `http://localhost:5000`. + +### Authentification JWT + +1. **Inscription d'un utilisateur** : + - Endpoint : `POST /api/signup` + - Corps de la requĂȘte : + ```json + { + "username": "votreNom", + "password": "votreMotDePasse" + } + ``` + +2. **Connexion d'un utilisateur** : + - Endpoint : `POST /api/login` + - Corps de la requĂȘte : + ```json + { + "username": "votreNom", + "password": "votreMotDePasse" + } + ``` + - RĂ©ponse : + ```json + { + "token": "votreJWT" + } + ``` + +3. **AccĂ©der aux donnĂ©es sĂ©curisĂ©es** : + - Endpoint : `GET /api/data` + - En-tĂȘte de la requĂȘte : + ``` + Authorization: SST votreJWT + ``` + SST est ici l'acronyme de Super Secure Token, un JavaWebToken gĂ©nĂ©rĂ© automatiquement lors du login et dont la signature sera vĂ©rifiĂ©e Ă  chaque requĂȘte nĂ©cĂ©ssitant un compte utilisateur. + +## Exemples de RequĂȘtes + +### Inscription d'un utilisateur + +```bash +curl -X POST http://localhost:5000/api/signup \ +-H "Content-Type: application/json" \ +-d '{"username": "testuser", "password": "testpass"}' +``` + +### Connexion d'un utilisateur + +```bash +curl -X POST http://localhost:5000/api/login \ +-H "Content-Type: application/json" \ +-d '{"username": "testuser", "password": "testpass"}' +``` + +### AccĂ©der aux donnĂ©es sĂ©curisĂ©es + +```bash +curl -X GET http://localhost:5000/api/data \ +-H "Authorization: Bearer votreJWT" +``` + +## Conclusion 🎉 + +Cette API simple vous permet de gĂ©rer efficacement des requĂȘtes tout en garantissant la sĂ©curitĂ© grĂące Ă  l'authentification JWT. N'hĂ©sitez pas Ă  personnaliser et Ă  Ă©tendre cette API selon vos besoins ! + +## Aide et Support + +Pour toute question ou problĂšme, ouvrez une issue sur le [dĂ©pĂŽt GitHub](https://github.com/hubHarmony/Csharp-API-Template/issues/new). 📬