usuarios usuario rutas proteger personalizado está esta control autorizada autenticacion administrador acción authentication backbone.js backbone-routing

authentication - personalizado - Cómo proteger rutas para diferentes grupos de usuarios



proteger rutas laravel (2)

Puede hacer que un enrutador gestione todas las rutas por usted y luego puede escuchar en el evento "todos" del enrutador para ver a qué ruta está intentando navegar el usuario. Luego, puede decidir en función del usuario y enrutar si se le permite ir allí o no. Algo como esto podría funcionar:

app.router.on("all",function(a){ var routeRegex = /^route:(.*)$/g; var routeType = a.match(/route:(.*)$/)[1]; if( routeType === "edit" && !app.isCurrentUserAllowedAdminAccess() ){ //re-route the user to a different page app.router.navigate("user/access_denied", {trigger:true}); } }

Estoy construyendo una aplicación con backbone.js y me pregunto cómo proteger rutas para diferentes grupos de usuarios.

He visto muchos tutoriales con algunos métodos de autenticación simples, pero no encuentro información sobre grupos de usuarios.

Digamos que tengo 2 grupos de usuarios para mi aplicación: administradores (leer / escribir) e invitados (leer). ¿Cómo puedo configurar un sistema de autenticación seguro con backbone.js, para que los invitados no puedan abrir http://example.com/foo/1/edit ?

¿Algunas ideas?


Una opción es configurar solo las rutas si el usuario está en el grupo de administración.

var router = new appRouter(); if (user.group === ''admin'') { router.route(''foo/:id/edit'',''edit'',function { // your admin route logic here. }); // or define the function in your router and reference it // such as: router.route(''foo/:id/edit'',''edit'',router.edit); } Backbone.history.start();

Si tuviera muchas rutas, podría crear un objeto que contenga sus rutas de administrador, como las siguientes: (aunque puede querer agregar una propiedad para el nombre de la ruta)

var adminRoutes = { ''foo/:id/edit'':function() { // your logic here }, ''another/route'': // same set-up as above ... };

Luego configúrelos en su condición if con un bucle:

for (var k in adminRoutes) router.route(k,k,adminRoutes[k]);

De todos modos, hay algunas opciones de configuración diferentes con este método.

La ventaja de este enfoque es que no tiene que verificar la ruta y los permisos de usuario en cada ruta a la que el usuario navega. O la ruta está configurada o no.

Si sus usuarios tienen la capacidad de actualizar a derechos de administrador, envuelva la lógica de configuración de ruta en una función e invoca cuando el usuario tenga acceso de administrador.

Aparte de todo esto, que yo sepa, no es posible configurar un sistema de autenticación segura en la interfaz. También debe verificar los permisos del lado del servidor, independientemente de cualquier enfoque que decida.