-
Logout im Controller
Hallo,
ich habe einen Controller, der für einen Login auf der Seite über eine externe Plattform zuständig ist. (User klickt auf externer Seite einen Button und wird bei mir eingeloggt)
Ich habe es nun geschafft, den Frontend-Member über den folgenden Code einzuloggen.
PHP-Code:
public function login($username) {
$user = $this->userProvider->loadUserByUsername($username);
$this->userChecker->checkPreAuth($user);
$usernamePasswordToken = new UsernamePasswordToken($user, null, 'frontend', $user->getRoles());
$this->tokenStorage->setToken($usernamePasswordToken);
$this->dispatcher->dispatch(
'security.interactive_login',
new InteractiveLoginEvent($this->request, $usernamePasswordToken)
);
}
Nun ist meine Frage, wie ich den Nutzer innerhalb dieses Controllers auch ausloggen könnte? Ich weiß, dass es das Modul "automatischer Logout" gibt, aber ich möchte das in meinem Controller schreiben, ohne einen Redirect auf die Logout-Seite zu machen.
Ginge das irgendwie? Ich hatte irgendwie die Idee im tokenStorage den Token auf null zu setzen, aber das hat einen Fehler geworfen.
Danke für eure Hilfe,
Viele Grüße
Daniel Koch
-
Für den Logout auf eine gewisse URL zu redirecten - und dann wieder zurück (optional) wäre aber nicht unüblich. Du kannst dir ja in der PageLogout Klasse ansehen, wie das dort gemacht wird. Dort wird der security.logout_url_generator Service benutzt.
-
Danke, das hat auch funktioniert!