Guide d’Utilisation des Services

Service de Gestion des Utilisateurs

Temps estimé :4 minutes 33 views

Voici un guide détaillé sur l’utilisation du ProfileService dans le cadre de l’application, en expliquant chaque méthode et son fonctionnement.

Guide d’Utilisation de ProfileService

ProfileService est une classe de service pour la gestion des profils utilisateur dans l’application. Elle fournit des méthodes pour réaliser les opérations CRUD (Create, Read, Update, Delete) sur les données de profil, gérer les tokens CSRF, et s’assurer de l’intégration sécurisée avec les points de terminaison API du backend.

Initialisation et Configuration

1. Initialisation avec Vue :

• init(app: App<Element>) : Associe Vue avec Axios en utilisant l’instance de l’application. Elle définit l’URL de base de l’API (VITE_APP_API_URL), puis configure des intercepteurs de requêtes et réponses pour gérer une barre de progression (via NProgress).

Intercepteurs : Avant chaque requête, NProgress démarre et arrête lorsqu’une réponse est reçue ou qu’une erreur est rencontrée.

2. Définition des En-têtes d’Autorisation :

• setHeader() : Récupère le token JWT depuis JwtService et l’ajoute dans les en-têtes d’autorisation par défaut pour toutes les requêtes Axios.

• Si le token est invalide, cette méthode tente de le rafraîchir via TokenService. En cas d’échec de rafraîchissement, l’utilisateur est déconnecté.

Méthodes de Gestion des Profils

1. Obtenir le Token CSRF :

• getCsrfToken() : Fait une requête GET vers /session/token pour récupérer le token CSRF. Si le token est absent ou la requête échoue avec une erreur 401, TokenService rafraîchit le token et réessaie.

2. Requêtes CRUD (Create, Read, Update, Delete) :

• post(resource: string, params: any) : Envoie une requête POST pour créer une nouvelle ressource de profil. Le token CSRF est inclus dans les en-têtes pour la sécurité.

update(resource: string, slug: string, params: any) : Met à jour une ressource spécifique de profil via une requête PATCH. Le token CSRF et l’en-tête Content-Type sont configurés pour respecter les exigences de l’API.

• delete(resource: string) : Supprime une ressource de profil en envoyant une requête DELETE avec le token CSRF.

• getById(resource: string) : Fait une requête GET pour obtenir une ressource de profil spécifique.

• getAll(resource: string) : Récupère toutes les ressources de profil en utilisant une requête GET avec les en-têtes appropriés.

3. Requêtes Personnalisées et de Recherche :

• query(resource: string, params: any) : Envoie une requête GET avec des paramètres pour effectuer une recherche ou filtrer les résultats sur le backend. Le token CSRF est inclus pour la sécurité.

4. Téléchargement d’Image de Profil :

• uploadImage(resource: string, imageFile: File) : Utilisée pour télécharger une image de profil. Elle transforme le fichier image en un ArrayBuffer et l’envoie au backend avec les en-têtes appropriés (Content-Disposition, X-CSRF-Token).

Gestion des Erreurs et Sécurité

Gestion des erreurs : Si une requête échoue (comme un code 401 pour une session expirée), ProfileService utilise TokenService pour essayer de rafraîchir le token. Les erreurs de rafraîchissement ou autres erreurs critiques sont propagées pour permettre une gestion centralisée.

Authentification et Autorisation : JwtService gère les tokens d’accès, tandis que TokenService rafraîchit les tokens expirés. Le token CSRF est systématiquement inclus pour protéger contre les attaques CSRF, assurant ainsi la sécurité des opérations sur les profils.

Exemple d’Utilisation de ProfileService

1. Mise à jour de Profil :

• L’application appelle ProfileService.update(‘profile’, userId, profileData) pour envoyer une requête de mise à jour avec les nouvelles informations.

• ProfileService récupère d’abord le token CSRF, puis ajoute le token d’autorisation si nécessaire.

2. Suppression de Profil :

• Pour supprimer un profil, ProfileService.delete(‘profile’) envoie une requête DELETE avec le token CSRF.

• Si l’opération réussit, l’utilisateur reçoit une confirmation de suppression.

3. Téléchargement d’Image de Profil :

• Lorsqu’un utilisateur télécharge une nouvelle image de profil, ProfileService.uploadImage(‘profile/image’, file) convertit l’image et l’envoie avec les en-têtes requis pour le type de contenu.

ProfileService offre une gestion complète des profils utilisateur en combinant sécurité, gestion des tokens et opérations CRUD, rendant les interactions avec les profils fluides et sécurisées. Ce guide aide les développeurs à comprendre et utiliser les méthodes de ce service pour intégrer des fonctionnalités de profil dans l’application.

CONTENTS