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

[SOLUCIONADO] Loguear a un Usuario luego de registrarse

Estas en el tema de Loguear a un Usuario luego de registrarse en el foro de Symfony en Foros del Web. Hola, Les escribo para ver si me pueden ayudar en esto por favor. Tengo un formulario personalizado donde un usuario ingresa su email, rut, contraseña ...
  #1 (permalink)  
Antiguo 25/03/2013, 01:35
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 15 años, 3 meses
Puntos: 23
Loguear a un Usuario luego de registrarse

Hola,

Les escribo para ver si me pueden ayudar en esto por favor.

Tengo un formulario personalizado donde un usuario ingresa su email, rut, contraseña y selecciona el pais, el formulario se valida y se registra en la BD perfectamente, pero... mi gran duda es ¿Como puedo loguear a dicho usuario luego de registrarse?

Una vez registrado si me logueo desde el formulario de login, lo hace perfectamente, pero me falta este pequeño gran detalle, que necesito que una vez registrado en la BD pueda loguearse

He estado leyendo y leyendo.. y leyendo... encontre una referencia con "sfUser" y algo mas con "sfGuardBasicSecurityFilter" pero no llegue a nada finalmente

Gracias de ante mano, cualquier informacion es util
  #2 (permalink)  
Antiguo 25/03/2013, 12:23
Avatar de fhederico  
Fecha de Ingreso: agosto-2009
Mensajes: 247
Antigüedad: 15 años, 3 meses
Puntos: 23
Respuesta: Loguear a un Usuario luego de registrarse

Bueno, despues de mas 8 horas de leer y leer, logre hacerlo, encontre mucha mas informacion en foros gringos, san google ayudando que mi ingles es horrible, les dejo la solucion por si a alguien mas le sirve


Desde mi controller

Código HTML:
Ver original
  1. $entity = new Candidato();
  2.  
  3. //...
  4.  
  5. //Iniciamos la sesion
  6. $this->authenticateUser($entity, 'prueba');


Y la funcion respectiva


Código HTML:
Ver original
  1. private function authenticateUser(UserInterface $user, $providerKey)
  2.     {
  3.         $token = new UsernamePasswordToken($user, null, $providerKey, $user->getRoles());
  4.         $this->container->get('security.context')->setToken($token);
  5.         $session = $this->getRequest()->getSession();
  6.         $session->set('_security_'.$providerKey,serialize($token));
  7.     }

Cabe mencionar que el parametro pasado "prueba" desde el controller es como se llama en mi archivo "security" el firewall


Código HTML:
Ver original
  1. security:
  2.      firewalls:
  3.         prueba: #Este es el nombre que estoy enviando
  4.             pattern:    ^/prueba
  5.             form_login:
  6.                 provider: user_db
  7.                 login_path: /prueba/login
  8.                 check_path: /prueba/login_check
  9.                 default_target_path: /prueba/home
  10.             logout:
  11.                 path:   /prueba/logout
  12.                 target: /prueba/loginOFF
  13.             remember_me:
  14.                 key:      %secret%
  15.                 lifetime: %life_time%
  16.                 path:     /
  17.                 domain:   ~ # Defaults to the current domain from $_SERVER


A y por ultimo, hay que llamar a las librerias requeridas

Código HTML:
Ver original
  1. use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
  2. use Symfony\Component\Security\Core\User\UserInterface;


Eso seria... gracias... gracias... no se molesten...

Etiquetas: registrarse, usuario
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 13:04.