tutorial node for example cookie security node.js express

security - for - Node.js+Express.js Modelo de seguridad de permisos de usuario



node js express-session example (4)

Ahora hay permission módulo Nodo para esto. Es muy fácil de usar, muy similar a la respuesta aceptada, pero aún se añaden algunas características.

Tenemos una aplicación que tiene dos tipos de usuarios. Dependiendo de cómo el usuario inicie sesión, queremos que tengan 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 que la seguridad sea parte de la implementación de cada ruta? El problema es que tendremos cierta lógica duplicada en las solicitudes. Podríamos convertir esto en funciones auxiliares, pero aún tendríamos que recordar llamarlo.

¿Hacemos que la seguridad sea parte de un gestor de rutas app.all () global? 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 lugar, pero luego ... todo el código está en un solo lugar.




Tenerlo por ruta generalmente funciona para mí. Esto es lo que hago típicamente:

function requireRole (role) { return function (req, res, next) { if (req.session.user && req.session.user.role === role) { next(); } else { res.send(403); } } } app.get("/foo", foo.index); app.get("/foo/:id", requireRole("user"), foo.show); app.post("/foo", requireRole("admin"), foo.create); // All bars are protected app.all("/foo/bar", requireRole("admin")); // All paths starting with "/foo/bar/" are protected app.all("/foo/bar/*", requireRole("user"));