Destroy session (including cookies). If session was created by admin, who logged into user
(cookie auth is not equal to session auth), then destroy only session and re-create from cookie
public static destroy ( ) |
public function logoutAction() { Scalr_Session::destroy(); $this->response->setRedirect('/'); }
Scalr_UI_Response::getInstance()->sendResponse(); }; try { $startTime = microtime(true); require __DIR__ . '/src/prepend.inc.php'; $prependTime = microtime(true); // public controller for link like /public/*; don't check CSRF $publicController = !strncmp('public', $path, strlen('public')); $session = Scalr_Session::getInstance(); $time1 = microtime(true); try { $request = Scalr_UI_Request::initializeInstance(Scalr_UI_Request::REQUEST_TYPE_UI, getallheaders(), $_SERVER, $_REQUEST, $_FILES, $session->getUserId(), null); } catch (Exception $e) { if ($path == 'guest/logout') { // hack Scalr_Session::destroy(); Scalr_UI_Response::getInstance()->setRedirect('/'); Scalr_UI_Response::getInstance()->sendResponse(); exit; } $message = $e->getMessage(); if ($e->getCode() != 1) { $message = htmlspecialchars($message) . ' <a href="/guest/logout">Click here to login as another user</a>'; Scalr_UI_Response::getInstance()->debugException($e); Scalr_UI_Response::getInstance()->failure($message, true); throw new Exception(); } else { throw new Exception($message); } } $time2 = microtime(true);
public function logoutAction() { $this->auditLog("user.auth.logout", ['.result' => 'success']); Scalr_Session::destroy(); $this->response->setRedirect('/'); }