コード例 #1
0
ファイル: class.logsys.php プロジェクト: saviobosco/lobby
 public static function construct($called_from = "")
 {
     if (self::$constructed === false) {
         self::config();
         self::$constructed = true;
         if (self::$config['features']['start_session'] === true) {
             session_start();
         }
         /**
          * Try connecting to Database Server
          */
         try {
             /**
              * Add the login page to the array of pages that doesn't need logging in
              */
             array_push(self::$config['pages']['no_login'], self::$config['pages']['login_page']);
             self::$dbh = new \logSysLobbyDB();
             self::$db = true;
             self::$cookie = isset($_COOKIE['logSyslogin']) ? $_COOKIE['logSyslogin'] : false;
             self::$session = isset($_SESSION['logSyscuruser']) ? $_SESSION['logSyscuruser'] : false;
             self::$remember_cookie = isset($_COOKIE['logSysrememberMe']) ? $_COOKIE['logSysrememberMe'] : false;
             $encUserID = hash("sha256", self::$config['keys']['cookie'] . self::$session . self::$config['keys']['cookie']);
             if (self::$cookie == $encUserID) {
                 self::$loggedIn = true;
             } else {
                 self::$loggedIn = false;
             }
             /**
              * If there is a Remember Me Cookie and the user is not logged in,
              * then log in the user with the ID in the remember cookie, if it
              * matches with the decrypted value in `logSyslogin` cookie
              */
             if (self::$config['features']['remember_me'] === true && self::$remember_cookie !== false && self::$loggedIn === false) {
                 $encUserID = hash("sha256", self::$config['keys']['cookie'] . self::$remember_cookie . self::$config['keys']['cookie']);
                 if (self::$cookie == $encUserID) {
                     self::$loggedIn = true;
                 } else {
                     self::$loggedIn = false;
                 }
                 if (self::$loggedIn === true) {
                     $_SESSION['logSyscuruser'] = self::$remember_cookie;
                     self::$session = self::$remember_cookie;
                 }
             }
             self::$user = self::$session;
             if (self::$config['features']['auto_init'] === true && $called_from != "logout" && $called_from != "login") {
                 self::init();
             }
             return true;
         } catch (\PDOException $e) {
             /**
              * Couldn't connect to Database
              */
             self::log('Couldn\'t connect to database. Check \\Fr\\LS::$config["db"] credentials');
             return false;
         }
     }
 }
コード例 #2
0
ファイル: class.logsys.php プロジェクト: LobbyOS/server
 public static function construct($called_from = "")
 {
     if (self::$constructed === false) {
         self::config(null, false);
         self::$constructed = true;
         if (self::$config['features']['start_session'] === true) {
             session_start();
         }
         /**
          * Try connecting to Database Server
          */
         try {
             /**
              * Add the login page to the array of pages that doesn't need logging in
              */
             array_push(self::$config['pages']['no_login'], self::$config['pages']['login_page']);
             self::$dbh = new \logSysLobbyDB();
             self::$db = true;
             self::$cookie = isset($_COOKIE['logSyslogin']) ? $_COOKIE['logSyslogin'] : false;
             self::$session = isset($_SESSION['logSyscuruser']) ? $_SESSION['logSyscuruser'] : false;
             self::$remember_cookie = isset($_COOKIE['logSysrememberMe']) ? $_COOKIE['logSysrememberMe'] : false;
             $encUserID = hash("sha256", self::$config['keys']['cookie'] . self::$session . self::$config['keys']['cookie']);
             if (self::$cookie == $encUserID) {
                 self::$loggedIn = true;
             } else {
                 self::$loggedIn = false;
             }
             /**
              * If there is a Remember Me Cookie and the user is not logged in,
              * then log in the user with the ID in the remember cookie, if it
              * matches with the decrypted value in `logSyslogin` cookie
              */
             if (self::$config['features']['remember_me'] === true && self::$remember_cookie !== false && self::$loggedIn === false) {
                 $encUserID = hash("sha256", self::$config['keys']['cookie'] . self::$remember_cookie . self::$config['keys']['cookie']);
                 if (self::$cookie == $encUserID) {
                     self::$loggedIn = true;
                 } else {
                     self::$loggedIn = false;
                 }
                 if (self::$loggedIn === true) {
                     $_SESSION['logSyscuruser'] = self::$remember_cookie;
                     self::$session = self::$remember_cookie;
                 }
             }
             self::$user = self::$session;
             /**
              * Check if devices is authorized to use the account
              */
             if (self::$config['features']['two_step_login'] === true && self::$loggedIn) {
                 $login_page = self::curPage() === self::$config['pages']['login_page'];
                 if (!isset($_COOKIE['logSysdevice']) && $login_page === false) {
                     /**
                      * The device cookie is not even set. So, logout
                      */
                     self::logout();
                     $called_from = "login";
                 } else {
                     if (self::$config['two_step_login']['first_check_only'] === false || self::$config['two_step_login']['first_check_only'] === true && !isset($_SESSION['device_check'])) {
                         $sql = self::$dbh->prepare("SELECT '1' FROM `" . self::$config['two_step_login']['devices_table'] . "` WHERE `uid` = ? AND `token` = ?");
                         $sql->execute(array(self::$user, $_COOKIE['logSysdevice']));
                         /**
                          * Device not authorized, so remove device cookie & logout
                          */
                         if ($sql->fetchColumn() !== '1' && $login_page === false) {
                             setcookie("logSysdevice", "", time() - 10);
                             self::logout();
                             $called_from = "login";
                         } else {
                             $_SESSION['device_check'] = 1;
                         }
                     }
                 }
             }
             if (self::$config['features']['auto_init'] === true && $called_from != "logout" && $called_from != "login") {
                 self::init();
             }
             return true;
         } catch (\PDOException $e) {
             /**
              * Couldn't connect to Database
              */
             self::log('Couldn\'t connect to database. Check \\Fr\\LS::$config["db"] credentials');
             return false;
         }
     }
 }