Introducción
Cuando utilizamos autentifación de usuarios en una web, una opción común es proporcionar una opción para recordar al usuario la próxima vez que el usuario visite nuestra página. Normalmente se añade una check en el formulario de login para dar la opción al usuario si quiere que sea recordado
La configuración de este funcionamiento en Symfony2 es muy sencillo, y casi no hay que hacer trabajo por nuestra parte, me gusta :-)
Solución
Primero tenemos que configurar el firewall de la siguiente forma:
# app/config/security.yml
firewalls:
login:
pattern: ^/user/login$
security: false
secured_area:
pattern: ^/
form_login:
login_path: acme_login
check_path: acme_security_check
default_target_path: acme_index
logout:
path: GPXLogUserBundle_logout
target: /
anonymous: ~
remember_me:
key: "%secret%"
lifetime: 604800 # 1 Semana
Como vemos en la sección donde tenemos configurado el login y el logout, debemos indicar una subsección remember_me, donde se indica una clave, un código alfanumerico que identificará nuestra web en la cookie. En el ejemplo se usa la clave que genera aleatoriamente Symfony2 cuando lo configuramos. La segunda propiedad que indicamos es el tiempo de validez del recordatorio, en el ejemplo una semana, expresado en segundos.
Una vez configurado el fichero de seguridad, sólo nos falta añadir a nuestro formulario de login la check para que el usuario pueda indicarnos que quiere que le recordemos. Lo haremos de la siguiente manera:
<p>
<input type="checkbox" id="remember_me" name="_remember_me" checked />
<label for="remember_me">Remember me</label>
</p>
Aquí tenemos que poner a la check el nombre _remember_me, de esta forma Symfony2 tratará automáticamente el proceso de recordar al usuario. Así de sencillo.
0 comentarios:
Publicar un comentario