Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

autentificacion de usuarios con frontcontroller, mvc y clase autentificador

Estas en el tema de autentificacion de usuarios con frontcontroller, mvc y clase autentificador en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Tengo una duda, lo que pasa es que tengo una clase independiente para autentificar usuarios, tengo un frontcontroller que se encarga de enrutar las peticiones ...
  #1 (permalink)  
Antiguo 28/06/2009, 12:29
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 16 años, 4 meses
Puntos: 2
Pregunta autentificacion de usuarios con frontcontroller, mvc y clase autentificador

Tengo una duda, lo que pasa es que tengo una clase independiente para autentificar usuarios, tengo un frontcontroller que se encarga de enrutar las peticiones de los usuarios y todo esto utilizando el patrón mvc, estoy recién empezando con esto, y quisiera saber si es en el frontcontroller donde debo importar y usar la clase para autentificar, hacer la comprobación antes de llamar al controlador y la acción, si no esta autenticado cargar la vista login.
Necesito que me orienten acerca de autentificar usuarios utilizando lo que acabo de presentarles.

Saludos
  #2 (permalink)  
Antiguo 29/06/2009, 13:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Respuesta: autentificacion de usuarios con frontcontroller, mvc y clase autentificado

La tarea del frontController es simplemente hacer de dispatcher unicamente, por lo que la tarea de autentificación (ojo que no es lo mismo que autorización) debe de implementarse en cada controlador, ya que es una tarea que se delega a la capa de negocios.

Recuerda que en el patrón MVC las capas de la vista y modelo interactuan mucho, el controlador simplemente reacciona a eventos y pasa los datos a la vista.

Saludos.
  #3 (permalink)  
Antiguo 29/06/2009, 13:45
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: autentificacion de usuarios con frontcontroller, mvc y clase autentificado

Hola GatorV

Gracias por la respuesta, ahora en que parte de cada controlador debo hacer la tarea de autentificación, si tengo un controlador del cual todos los demás controladores heredan seria una buena practica si autentificara ahí importando o extendiendo a la clase que tengo para autentificar?

Saludos
  #4 (permalink)  
Antiguo 29/06/2009, 14:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Respuesta: autentificacion de usuarios con frontcontroller, mvc y clase autentificado

Exacto todo depende de la implementación por ejemplo en Zend Framework los controladores tienen un método init() que siempre es llamado antes de cada acción, ahí es un buen lugar para hacerlo, o en su caso también lo que tiene son los llamados Controller Plugins que son plugins que se ejecutan en el dispatcher antes de ser llamados los controladores, entonces puedes hacer un plugin que verifique si esta o no logeado y hacer el redirect correspondiente.

Por eso como te decia todo depende de tu sistema y que tanta flexibilidad te permita al hacer cosas como estas.

Saludos.
  #5 (permalink)  
Antiguo 16/12/2009, 16:35
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años, 2 meses
Puntos: 43
Respuesta: autentificacion de usuarios con frontcontroller, mvc y clase autentificado

Una duda sobre el tema, yo tengo en mi controlador index de mi administración el login. Pero necesito "autorizar" que si no esta logueado como admin si pone algo como index.php?controlador=usuario&accion=borrar&id=1 no pueda ejecutarlo
para eso si debo validar en el frontcontroller algo como:
Código PHP:
Ver original
  1. if( empty($controller) || empty($this->Session->get('admin')) ){
  2.              $controller = 'indexController';
  3.            }
  4.            else{
  5.              $controller = $controller.'Controller';
  6.            }

o estoy equivocado?
  #6 (permalink)  
Antiguo 16/12/2009, 16:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Respuesta: autentificacion de usuarios con frontcontroller, mvc y clase autentificado

Como respondi mas arriba, no es tarea del frontController el validar si un usuario esta adentro o no, eso debe de ser tarea de cada controlador independiente, o de cada action.

Saludos.
  #7 (permalink)  
Antiguo 16/12/2009, 18:55
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años, 2 meses
Puntos: 43
Respuesta: autentificacion de usuarios con frontcontroller, mvc y clase autentificado

entiendo, pero no hay una forma mas "general" de hacerlo, ya que si en la administración tengo 20 controladores y cada uno tengo por ejemplo no menos de 10 acciones sería engorroso y creo que redundante agregar la validacion si esta logueado o no.
  #8 (permalink)  
Antiguo 17/12/2009, 00:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 7 meses
Puntos: 2135
Respuesta: autentificacion de usuarios con frontcontroller, mvc y clase autentificado

Para eso tu frontController tiene que tener la capacidad de tener "plugins" como ZendFramework, que son ejecutados antes o después del dispatch, o en este caso crea un controlador que tenga un método init que cheque eso, y los controllers de la parte de admin, heredalos desde controller que hace el chequeo, así solo lo tienes en un solo lado.

Saludos.
  #9 (permalink)  
Antiguo 17/12/2009, 11:57
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 20 años, 2 meses
Puntos: 43
Respuesta: autentificacion de usuarios con frontcontroller, mvc y clase autentificado

Gracias GatorV, investigaré sobre como tener plugins en un frontcontroller, la otra alternativa en mi caso funciona, pero si quiero tener varíos roles (admin, usuario, agente, etc) y cada uno su panel, voy a tener que crear un controlador por cada uno.

Salu2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:14.