/** * Load a user by login token, stored as a setting */ static function getByToken($token) { $config = self::getStaticService('config'); $setting = \Db\Sql\Settings::getByKeyValue($config->settings->cookieToken, $token->getValue(), ['first' => TRUE]); if (!$setting || !valid($setting->object_id)) { return FALSE; } return \Db\Sql\Users::findFirst($setting->object_id); }
/** * Authorize a user's login token * * @return object | bool */ public function authorizeToken() { $cookies = $this->getService('cookies'); // read the cookie, check if the token belongs to a user if (!$cookies->has('token')) { return FALSE; } $token = $cookies->get('token'); if (!valid($token->getValue(), STRING)) { return FALSE; } // try to get the user by token $user = \Db\Sql\Users::getByToken($token); if (!$user || !valid($user->id)) { return FALSE; } // save the session data $session = $this->getService('session'); $session->set('user_id', $user->id); return $user; }
/** * Load a user internally. * * @param integer $userId */ private function loadUser($userId) { $this->userObj = \Db\Sql\Users::findFirst($userId); $this->user = $this->userObj->toArray(); $this->userId = $this->userObj->id; }