Implementar la función remember me en Symfony 5

0
366
Symfony 4

En esta entrada os voy a explicar cómo implementar la función remember me en Symfony 5, simple, rápido, sencillo y para toda la familia.

Algunos os preguntaréis » – Joder, es tan simple como generar una cookie y guardarlo ahí con la sesión no ?». Pues sí, pero Symfony 5 nos lo pone todavía más fácil y os lo voy a demostrar.

Formulario de Symfony en twig
Formulario de Symfony en twig

Lo primero que debemos hacer es ir a nuestro fichero security y añadir la siguiente línea justo en la parte que empieza el remember_me:

firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            anonymous: true
            lazy: true
            provider: app_user_provider
            guard:
                authenticators:
                    - App\Security\AuthGuardAuthenticator
            form_login:
              login_path: login
              check_path: login
              default_target_path: main
            logout:
                path: app_logout
                target: app_login
            remember_me:
                secret:   '%kernel.secret%'
                lifetime: 604800 
                path:     /

Y ahora vamos a detallar que es cada uno de esos parámetros:

  • secret: Concretamente es el string que se utiliza para cifrar nuestro contenido de una cookie. Esto por defecto utiliza el string APP_SECRET que tenemos en nuestro fichero raíz .env del proyecto.
  • lifetime: El tiempo de vida de la cookie en segundos.
  • path: El lugar en que se aplicará la cookie sessión, puede ser en la raíz de la aplicación o a una ruta específica como podría ser /admin.

El siguiente paso es definir nuestro checkbox tal que así dentro de nuestro form:

<input type="checkbox" id="remember_me" name="_remember_me" checked/>
<label for="remember_me">Keep me logged in</label>

Tan simple como eso, para hacer la prueba solamente tenemos que hacer login en la web y en el apartado de herramientas de desarrollador de vuestro navegador, sección de almacenamiento podremos ver una cookie como esta:

Cookie remember me

Y con esto tan simple, ya habremos terminado, aquí te dejo la información oficial de Symfony para que le pegues un vistazo. Como podrás ver, podrás forzar al usuario a volver a realizar un login al acceder a ciertos recursos, como puede ser información de carácter privado.

En esta anterior entrada también te dejo como crear un CRUD de usuario en Symfony 4.

¡Hasta la próxima!

Dejar respuesta

Please enter your comment!
Please enter your name here