2017-12-20 11 views
1

Ich kann einen Benutzer nicht abmelden.Ich kann mich nicht mit Symfony 4 abmelden

Ich portierte benutzerdefinierte Benutzerverwaltungslogik zu einem Symfony 4-Projekt. Es verwendet Rezepte für security und guard. Hier

ist die logout config in meinem Haupt-Firewall:

logout: 
     path: /logout 
     target:/

Ergebnis: - Benutzer geht an/Logout - Benutzer umgeleitet wird/ - is_granted("IS_AUTHENTICATED_REMEMBERED") weiter true in meiner Vorlage zurückzukehren (false ist erwartet)

Andere Überlegungen: - Der Firewall-Eintrag wird ausgelöst, weil ich Fehler erhalte, wenn ich es entfernen - Ich habe tri ed Hinzufügen von zusätzlichen Parametern zu logout, um die Sitzung und Cookies zu zerstören, aber das machte keinen Unterschied - Anmeldung funktioniert gut

Haben Sie eine Idee, wie Sie dies beheben?

:: bearbeiten - hinzugefügt security.yaml wie gewünscht ::

security: 
    encoders: 
     App\Entity\User: bcrypt 
    role_hierarchy: 
     ROLE_ADMIN:  ROLE_USER 
     ROLE_SUPER_ADMIN: ROLE_ADMIN 
    providers: 
     app_users: 
      entity: { class: App\Entity\User, property: email } 
     app_oauth: 
      id: app.oauth_user_provider 
    firewalls: 
     dev: 
      pattern: ^/(_(profiler|wdt)|css|images|js)/ 
      security: false 
     main: 
      provider: app_users 
      anonymous: ~ 
      oauth: 
       resource_owners: 
        google: "/login/check-google" 
       default_target_path:/
       login_path:/
       failure_path: /login 
       oauth_user_provider: 
        service: app.oauth_user_provider 
      remember_me: 
       secret: "%env(APP_SECRET)%" 
       lifetime: 2592000 
       path:/
      guard: 
       authenticators: 
        - App\Security\LoginFormAuthenticator 
       entry_point: App\Security\LoginFormAuthenticator 
      logout: 
       path: /logout 
       target:/
      switch_user: ~ 
+0

Hallo, können Sie uns Ihre 'config/packages/security.yaml' Datei zeigen? – MatMouth

+0

@MatMouth Ja, ich habe es gerade hinzugefügt, vielen Dank für die Suche. – Coder1

+1

Sie haben keine access_control, um die Seite für anonyme Benutzer zu autorisieren. 'access_control: - {Pfad: ^/login/check-google, Rollen: IS_AUTHENTICATED_ANONYMOUSLY}' – MatMouth

Antwort

1

Überprüfen Sie die serialize und unserialize Methoden für Feld $this->email in App\Entity\User.

Verwandte Themen