Wie erzwinge ich die Benutzerabmeldung symfony2

Lesezeit: 2 Minuten

Benutzer-Avatar
Adil Ouchraa

Ich möchte einen Benutzer zwingen, sich in Symfony2 abzumelden, nachdem ich überprüft habe, dass es nicht genügend Funktionen für den Zugriff auf einen bestimmten gesicherten Bereich hat.

Ich habe es versucht mit:

$this->get('request')->getSession()->invalidate();

aber es scheint, dass etwas schief geht, der Benutzer hat sich immer noch angemeldet, bis ich ihn mit der /logout-Route abgemeldet habe.

Ich muss erwähnen, dass ich KayueWordpressBundle verwende, um meine Symfony-App mit einer WordPress-basierten Website zu verbinden, um ein benutzerdefiniertes Backoffice zu erstellen.

Hier ist meine security.yml-Datei

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

Wie kann ich das bitte machen?

Vielen Dank

  • mögliches Duplikat von Symfony2: Wie melde ich den Benutzer manuell im Controller ab?

    – Slawa Fomin II

    2. März 2015 um 15:38 Uhr

Benutzer-Avatar
satdev86

Sie können die Abmeldung erzwingen, indem Sie anrufen setToken() mit nullversuche es mal so:

$this->container->get('security.context')->setToken(null);

Es wird das Benutzertoken aus dem Sicherheitskontext zerstören und den Benutzer rausschmeißen.


Weitere Informationen finden Sie auch in dieser Frage: Symfony2: Wie kann man den Benutzer manuell im Controller abmelden?

  • Die oben angegebene Lösung ruft den Logout-Handler nicht auf, wenn ich einen Handler für die Abmeldung registriert habe.

    – Jamin

    5. März 2015 um 10:10 Uhr

  • Übrigens, verwenden $this->container->get('security.authorization_checker') stattdessen (neu in 2.6)

    – Ronan

    30. August 2015 um 20:34 Uhr

  • @Ronan, es ist $this->container->get('security.token_storage'). Sehen Neu in Symfony 2.6: Verbesserungen der Sicherheitskomponenten.

    – Laurent W.

    26. April 2016 um 10:38 Uhr

1384050cookie-checkWie erzwinge ich die Benutzerabmeldung symfony2

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy