Llegué a la biblioteca CASL JavaScript, que restringe a qué recursos puede acceder un cliente determinado.
Mi pregunta es si se puede usar para el acceso basado en roles en una aplicación React de forma segura.
¿Y si el usuario puede alterar el permiso y obtener acceso no autorizado si se usa solo en la interfaz para mostrar/ocultar componentes como se muestra en el siguiente código de reacción?
import React, { useContext } from 'react'; import { AbilityContext } from './Can' export default () => { const createTodo = () => { /* logic to show new todo form */ }; const ability = useContext(AbilityContext); return ( <div> {ability.can('create', 'Todo') && <button onClick={createTodo}>Create Todo</button>} </div> ); }Referencia : https://casl.js.org/v5/en/package/casl-react
Tbh, los usuarios siempre pueden obtener acceso desde el lado de la interfaz modificando algún código javascript y es por eso que debe manejar la autorización desde el backend
sobre su pregunta para CASL, solo verifica si tiene la capacidad de ver esta página o botón o realizar acciones específicas ... por lo que el lugar donde guarda las capacidades del usuario es su responsabilidad, no la responsabilidad de CASL