# 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](https://visualstudio.microsoft.com/fr/) 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). 📬