isLogged()) { // Vyzkoušet automatické přihlášení přes token try { $this->autoLogin(); } catch(Exception $e) { // TODO:Nebudu rozepisovat, pak si to uprav, tohle je nástřel... $actual_url = $_SERVER['REQUEST_URI']; // Přesměrujeme na přihlášení $this->redirect('login?message=' . $e . '&last-url=' . $actual_url); } } } /** * Ověří, jestli je uživatel přihlášený * * @return bool Je uživatel přihlášený? */ private function isLogged() { // Je SESSION platný? return isset($_SESSION['email']); } /** * Automaticky přihlásí uživatele s pomocí tokenu * * @return bool Úspěšně přihlášen? * * @throws Exception Uživatel nemá platný token */ private function autoLogin() { // Získání dat pro přihlášení (nebo vrácení false -> neplatný token) $user_data = $this->db->queryOne(' SELECT `name`, `email`, `rank` FROM `users` WHERE `token` = ? ', $_COOKIE['usertoken']); // Neplatný token if(!$user_data) throw new Exception('unvalid-token'); // Přihlášení uživatele (nastavení dat do SESSION) $_SESSION['name'] = $user_data['name']; $_SESSION['email'] = $user_data['email']; $_SESSION['rank'] = $user_data['rank']; } }