function __construct() { Session::init(); $this->request = DI::get('request'); $this->response = DI::get('response'); }
/** * Bejelentkezés cookie-val */ public function loginWithCookie() { $cookie = isset($_COOKIE['rememberme']) ? $_COOKIE['rememberme'] : false; //ha nem létezik 'rememberme' cookie if (!$cookie) { // $this->setError('cookie_invalid'); return false; } // cookie tartalom elemekre bontása list($user_id, $token, $hash) = explode(':', $cookie); // ha a 'rememberme' cookie első két részének titkosított kódja nem egyezik meg a cookie harmadik részével if ($hash !== hash('sha256', $user_id . ':' . $token)) { $this->setError('cookie_invalid'); return false; } // ha üres a cookie token része if (empty($token)) { $this->setError('cookie_invalid'); return false; } // user adatainak lekérdezése $this->user = $this->getUserDataById($user_id, $token); // ha nincs ilyen user if (!$this->user) { $this->setError('login_failed'); return false; } // a user_active mező értékének vizsgálata if (!$this->_isActive($this->user->active)) { $this->setError('Az ön belépési engedélye fel van függesztve!'); return false; } // user login adatok eltárolása session-ben $user_data = array('id' => $this->user->id, 'name' => $this->user->name, 'email' => $this->user->email, 'role_id' => $this->user->role_id, 'photo' => $this->user->photo, 'provider_type' => $this->user->provider_type); Session::init(); Session::set(self::$logged_in, true); Session::set(self::$last_activity, time()); // bejelentkezés, illetve utolsó aktivitás ideje Session::set('user_data', $user_data); // generate integer-timestamp for saving of last-login date $last_login_timestamp = time(); // adatok a pdo objektum execute metódusának $data = array(':id' => $this->user->id, ':last_login_timestamp' => $last_login_timestamp); // sikeres bejelentkezés esetén adatok rögzítése az adatbázisban (2. paraméter a rememberme) $this->_registerSuccessLogin($data, false); return true; }