L'autorisation est un aspect essentiel de toute application Web, garantissant que les utilisateurs n'ont accès qu'aux fonctionnalités et aux données avec lesquelles ils sont autorisés à interagir. CASL (pour « Capability-based Access Control ») est une bibliothèque JavaScript populaire permettant de gérer cette logique de manière flexible et déclarative. Dans cet article, nous expliquerons comment intégrer CASL à une application React, en vous fournissant les outils nécessaires pour mettre en œuvre une autorisation efficace.
Avant de vous lancer dans l'intégration, vous devez connaître les éléments suivants :
npm install @casl/ability @casl/react
Les capacités définissent les actions qu'un utilisateur peut effectuer sur des ressources particulières. Commençons par créer une instance de capacité.
import { Ability } from '@casl/ability'; const defineAbilitiesFor = (user) => { return new Ability([ { action: 'read', subject: 'Article', }, { action: 'update', subject: 'Article', conditions: { authorId: user.id }, }, ]); }; export default defineAbilitiesFor;
Dans cet exemple, nous définissons deux capacités :
Pour utiliser ces capacités dans vos composants React, vous pouvez créer un contexte pour fournir l'instance de capacité dans toute votre application.
import React, { createContext, useContext } from 'react'; import { Ability } from '@casl/ability'; const AbilityContext = createContext(); export const AbilityProvider = ({ children, user }) => { const ability = defineAbilitiesFor(user); return ({children} ); }; export const useAbility = () => useContext(AbilityContext);
Maintenant que vous avez configuré le contexte, vous pouvez protéger vos composants à l'aide du composant Can fourni par @casl/react.
import { Can } from '@casl/react'; function Article({ article }) { const ability = useAbility(); return (); }{article.title}
{article.content}
Ici, le bouton « Modifier l'article » ne sera visible que si l'utilisateur a l'autorisation de mettre à jour l'article.
CASL peut également aider à gérer ce qui se passe lorsqu'un utilisateur tente une action non autorisée. Cela peut être fait en vérifiant les capacités des gestionnaires d'événements ou des appels d'API.
const handleEdit = () => { if (!ability.can('update', article)) { alert('You are not allowed to edit this article!'); return; } // proceed with editing logic };
L'intégration de CASL à React fournit un moyen propre et déclaratif de gérer les autorisations dans vos applications. En définissant des capacités et en utilisant le composant Can, vous pouvez facilement contrôler ce que les utilisateurs peuvent voir et faire, améliorant ainsi à la fois la sécurité et l'expérience utilisateur de votre application.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3