Tenemos una aplicación que tiene dos tipos de usuarios. Dependiendo de cómo inicie sesión el usuario, queremos que tenga acceso a diferentes partes de la aplicación.
¿Cómo implementamos un modelo de seguridad para evitar que los usuarios vean cosas a las que no tienen acceso?
¿Hacemos de la seguridad parte de la implementación de cada ruta? El problema es que tendremos lógica duplicada en las solicitudes. Podríamos mover esto a funciones auxiliares, pero aún tendríamos que recordar llamarlo.
¿Hacemos que la seguridad sea parte de un controlador de ruta global app.all ()? El problema es que tenemos que inspeccionar cada ruta y hacer una lógica diferente basada en una multitud de reglas. Al menos todo el código está en un solo lugar, pero luego ... todo el código está en un solo lugar.
requireRole
tomar una matriz en su lugar? Y consulte conindexOf
.Puede usar skill-js con everyauth, que es bastante similar a CanCan for Rails https://github.com/scottkf/ability-js
fuente
Eche un vistazo a esta lista para los sistemas de permisos / ACL de NodeJS. En mi humilde opinión, OptimalBits node_acl se ve mejor.
fuente
Ahora hay permiso de módulo de nodo para esto. Es muy fácil de usar, muy similar a la respuesta aceptada, pero aún se agregan algunas características.
fuente