Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Cerrar la sesión a un usuario logueado en una aplicación Symfony

26 de noviembre de 2015

Hola qué tal? Les hago una consulta, resulta que estoy desarrollando un sistema de login. El tema es que cuando cada usuario que se registra, lo hace con un estado de inhabilitado, porque la idea es que éste confirme el registro por correo electrónico, hasta ahí todo bien.

El problema que tengo es que cuando corroboro el estado del usuario para saber si está habiltiado o no, éste lo mismo sigue estando en sesión, hay alguna forma de que pueda agregar una validación de éste tipo o de que pueda de alguna manera quitar al usuario logueado de la sesión?

Muchas gracias!


Respuestas

#1

Existen varias maneras de hacerlo.

En una plantilla

<a href="{{ logout_path('nombre_del_firewall') }}">Cerrar sesión</a>

Si usas Symfony moderno (2.7 o superior), el nombre del fireall es opcional, por lo que lo siguiente también funciona:

<a href="{{ logout_path() }}">Cerrar sesión</a>

Si estás enviando este enlace en un email o en un RSS, tienes que generar URLs absolutas:

<a href="{{ logout_url() }}">Cerrar sesión</a>

En un controlador

Si usas Symfony anterior a 2.6:

$this->get('security.context')->setToken(null);
$this->get('request')->getSession()->invalidate();

Si usas Symfony 2.6 o posterior:

$this->get('security.token_storage')->setToken(null);
$this->get('request')->getSession()->invalidate();

@javiereguiluz

26 noviembre 2015, 21:44
#2

Genial muchas gracias, era justo lo que necesitaba!

@MrXXX0323

26 noviembre 2015, 23:41