Foros del Web » Programando para Internet » PHP » Zend »

Zend_Auth problemas al guardar información de usuario para usar en otras partes

Estas en el tema de Zend_Auth problemas al guardar información de usuario para usar en otras partes en el foro de Zend en Foros del Web. Buenas. Estoy trabajando con Zend Framework, y la verdad es que llevo abierto alguno que otro post, parece que no me entero de nada... pero ...
  #1 (permalink)  
Antiguo 27/05/2012, 11:03
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años
Puntos: 17
Zend_Auth problemas al guardar información de usuario para usar en otras partes

Buenas.

Estoy trabajando con Zend Framework, y la verdad es que llevo abierto alguno que otro post, parece que no me entero de nada... pero es que me pongo a hacer algo que necesito, y busco y busco, y leo... y no me terminan de salir las cosas. Y ya como última instancia pues procedo a abrir un post aquí, que normalmente me han ayudado muy bien.

Os cuento el problema esta vez:

Estoy autenticando a usuarios mediante un formulario, y con las herramientas que provee Zend Framework para ello, como es la clase Zend_Auth_Adapter_DbTable. Hasta aquí todo bien, logro autenticar al usuario, etc etc.

Mi problema viene porque me interesa también guardar el id del usuario para poder usarlo en otras partes de mi web. Entonces he estado leyendo y tal, y parece ser que la clase provee de un metodo para crear una sesión con los datos que recibe al autenticar al usuario. Lo he hecho de la siguiente forma:

Código PHP:
 //por aquí arriba hay más código

 
$result $auth->authenticate($authAdapter);
 
                if(
$result->isValid()){
                    
$storage Zend_Auth::getInstance()->getStorage();
                    
$bddResultRow $authAdapter->getResultRowObject();
                    
$storage->write($bddResultRow);

                    return 
$this->_redirect('/event/index');

 
//por aquí abajo hay más código 
Según he leído, realizando eso, me guardaría una sesión con el namespace "Zend_Auth", y con la información de cada campo de la tabla del usuario autenticado.

Después intenté acceder a algún dato de dicha sesión, desde, por ejemplo, el layout, para mostrar el dato solo por probar, y nada... no me sale.

No se que hago mal, ni que me puede faltar, pero la cosa es que no me sale.

Espero que puedan arrojar un poco de luz al asunto, y perdón por ser pesado.

Un saludo y gracias.
  #2 (permalink)  
Antiguo 27/05/2012, 11:12
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Zend_Auth problemas al guardar información de usuario para usar en otras p

Como estas accediendo ?, y ten en cuenta que desde una vista no deberias acceder directamente a la sesion para tal objetivo es mejor un view helper, de todas formas te dejo la referencia a la doc http://framework.zend.com/manual/en/...oduction.using, basta con hacer algo así:

Código PHP:
Ver original
  1. $identity = Zend_Auth::getInstance()->getIdentity();
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 27/05/2012, 12:44
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años
Puntos: 17
Respuesta: Zend_Auth problemas al guardar información de usuario para usar en otras p

Gracias masterpuppet. La referencia ya la estuve leyendo, y no me quedó claro...

Con esa linea de código que me pones, lo que logro sacar es la identity, que es el nombre de usuario, solo eso, ¿verdad?.

A mi lo que me interesa hacer es poder guardar el id del usuario, por ejemplo, en mi sistema, los usuarios pueden crear eventos, y me interesa que cuando el usuario se loguee, se guarde esa información, para que cuando cree un nuevo evento, al crear el evento guarde también la id del usuario que lo ha creado, o sea, el que está logueado en ese momento.

No se si habrá alguna forma más sencilla de hacerlo o algo...

Gracias, un saludo!
  #4 (permalink)  
Antiguo 27/05/2012, 13:00
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Zend_Auth problemas al guardar información de usuario para usar en otras p

Se guarda lo que devuelva Zend_Auth_Adapter_DbTable::getResultRowObject, comprueba lo que te esta devolviendo, y en todo caso modificalo acorde a tus necesidades como te indica la doc http://framework.zend.com/manual/en/...r.dbtable.html, y mas sencillo es difícil, ten en cuenta que simplemente le solicitas los datos al adapter y luego los guardas.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 28/05/2012, 05:58
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años
Puntos: 17
Respuesta: Zend_Auth problemas al guardar información de usuario para usar en otras p

Gracias por tu ayuda masterpuppet.

Después de media mañana liado con esto, he logrado sacarlo... uff...

Me cuesta bastante solucionar estos problemas con Zend Framework, supongo que será porque llevo poco tiempo con el... pero bueno, poco a poco van saliendo cositas.

Un saludo y gracias de nuevo.
  #6 (permalink)  
Antiguo 28/05/2012, 09:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Zend_Auth problemas al guardar información de usuario para usar en otras p

Siempre puedes usar una Sesión normal cuando no quieras usar Zend_Auth:
Código PHP:
Ver original
  1. $session = new Zend_Session_Namespace();
  2. $session->loggedIn = true;
  3. $session->user_id = $nUserId;

Saludos.
  #7 (permalink)  
Antiguo 29/05/2012, 14:48
Avatar de Lobito14  
Fecha de Ingreso: abril-2010
Mensajes: 222
Antigüedad: 14 años
Puntos: 17
Respuesta: Zend_Auth problemas al guardar información de usuario para usar en otras p

Gracias GatorV. Lo tendré en cuenta también!! :)

Etiquetas: info, sesión, zend_auth, usuarios
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 10:30.