public function run() { $logout = $this->getInput()->getParameter('logout', 'false'); if ($logout === 'true') { $sessionStore = $this->getServiceObject(UmgtUserSessionStore::class, [], APFService::SERVICE_TYPE_SESSION_SINGLETON); /* @var $sessionStore UmgtUserSessionStore */ $sessionStore->logout($this->getContext()); // delete cookie to avoid re-log-in effects after clicking on log-out $cookie = new Cookie(UmgtAutoLoginAction::AUTO_LOGIN_COOKIE_NAME); $response = $this->getResponse(); $response->setCookie($cookie->delete()); // redirect to target page $urlProvider = $this->getDIServiceObject('APF\\modules\\usermanagement\\biz', 'LogoutRedirectUrlProvider'); /* @var $urlProvider UmgtRedirectUrlProvider */ $response->forward(LinkGenerator::generateUrl(Url::fromString($urlProvider->getRedirectUrl()))); } }
public function deleteCookie(Cookie $cookie) { $this->cookies[$cookie->getName()] = $cookie->delete(); return $this; }