diff --git a/src/Security/MemberAuthenticator/LogoutHandler.php b/src/Security/MemberAuthenticator/LogoutHandler.php index 1bbb253da..9b870a259 100644 --- a/src/Security/MemberAuthenticator/LogoutHandler.php +++ b/src/Security/MemberAuthenticator/LogoutHandler.php @@ -2,6 +2,7 @@ namespace SilverStripe\Security\MemberAuthenticator; +use SilverStripe\Control\Controller; use SilverStripe\Control\Director; use SilverStripe\Control\HTTPResponse; use SilverStripe\Control\RequestHandler; @@ -109,6 +110,14 @@ class LogoutHandler extends RequestHandler return $this->redirect($backURL); } - return $this->redirect(Security::config()->get('login_url')); + $link = Security::config()->get('login_url'); + $referer = $this->getReturnReferer(); + if ($referer) { + $link = Controller::join_links($link, '?' . http_build_query([ + 'BackURL' => Director::makeRelative($referer) + ])); + } + + return $this->redirect($link); } }