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
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
Genial muchas gracias, era justo lo que necesitaba!
@MrXXX0323