Adil Ouchraa
Quiero obligar a un usuario a cerrar sesión en Symfony2 después de comprobar que no tiene suficientes capacidades para acceder a un área segura específica.
He probado con:
$this->get('request')->getSession()->invalidate();
pero parece que algo sale mal, el usuario aún inició sesión hasta que lo desconecté usando la ruta /logout.
Debo mencionar que estoy usando KayueWordpressBundle para conectar mi aplicación Symfony con un sitio web basado en wordpress para crear un back office personalizado.
Aquí está mi archivo security.yml
security:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login_firewall:
pattern: ^/$
anonymous: ~
secured_area:
pattern: ^/
kayue_wordpress: ~
form_login:
check_path: /login_check
login_path: /
logout:
path: /logout
target: /
access_control:
- { path: ^/admin, roles: ROLE_ADMIN }
providers:
wordpress:
entity: { class: Kayue\WordpressBundle\Entity\User, property: username }
encoders:
Kayue\WordpressBundle\Entity\User:
id: kayue_wordpress.security.encoder.phpass
¿Cómo puedo hacer esto por favor?
Gracias
satdev86
Puede forzar el cierre de sesión llamando setToken()
con null
intenta algo como esto:
$this->container->get('security.context')->setToken(null);
Destruirá el token de usuario del contexto de seguridad y expulsará al usuario.
Además, consulte esta pregunta para obtener más detalles: Symfony2: ¿cómo cerrar la sesión del usuario manualmente en el controlador?
-
La solución dada anteriormente no llamará al controlador de cierre de sesión, si he registrado algún controlador para cerrar sesión.
– Jaimín
5 de marzo de 2015 a las 10:10
-
Por cierto, usa
$this->container->get('security.authorization_checker')
en cambio (nuevo en 2.6)– Ronan
30 de agosto de 2015 a las 20:34
-
@Ronan, es
$this->container->get('security.token_storage')
. Ver Nuevo en Symfony 2.6: Mejoras en los componentes de seguridad.– Laurent W.
26 de abril de 2016 a las 10:38
posible duplicado de Symfony2: ¿cómo cerrar la sesión del usuario manualmente en el controlador?
– Slava Fomin II
2 de marzo de 2015 a las 15:38