php - ¿Cómo implementar recordarme programáticamente en Symfony2?
login remember-me (4)
Puede crear una cookie con una ID única. Luego, almacene esta cookie en una base de datos y verifique esta base de datos cada vez que un nuevo visitante visite el sitio. En caso de que tenga sus usuarios almacenados en una base de datos, sería mejor crear una columna adicional para almacenar esta información. Eche un vistazo a FOSUserBundle por cierto.
Implementé una función de inicio de sesión programáticamente.
Este código es el siguiente:
$token = new UsernamePasswordToken($user, $user->getPassword(), ''main'', $user->getRoles());
$this->get(''security.context'')->setToken($token);
$event = new InteractiveLoginEvent($this->getRequest(),$token);
$this->get(''event_dispatcher'')->dispatch(''security.interactive_login'', $event);
Después de esto, ¿cómo implemento recordarme?
(Sé cómo usar el formulario, pero quiero implementar recordarme programáticamente. )
por favor ayuda...
Tuve el mismo problema. Deberías usar RememberMeToken
lugar de UsernamePasswordToken
.
Los parámetros de clase son muy similares a UsernamePasswordToken, así que no entraré en detalles.
Intenta usar RememberMeToken
$key = $this->getParameter(''secret''); // your security key from parameters.yml
$token = new RememberMeToken($user, ''main'', $key);
$this->get(''security.context'')->setToken($token);
Usé el mismo método que se me sugirió, pero me dieron un error. Tuve que usar $ this-> container (Symfony2):
$key = $this->container->getParameter(''secret'');
$token = new RememberMeToken($user, ''user_area'', $key);
$this->get(''security.context'')->setToken($token);
$ user es una instancia de mi clase User y ''user_area'' es el nombre de mi firewall.