Beispiel #1
0
 /**
  * check vng session
  * @return array of identity if valid, false if not  valid
  */
 public function _verifyVngSession($sessionid)
 {
     $verified = array("valid" => false, "identity" => null);
     if (empty($sessionid) || !Zing_Auth_Util::checkVngSessionKey($sessionid)) {
         return $verified;
     }
     $storage = Zing_Auth_Storage_VNGSession::getInstance();
     $storage->setSessionId($sessionid);
     $result = $storage->read($sessionid);
     // check valid
     if ($result->resultCode != 0) {
         return $verified;
     }
     // check ip address
     $ipAddress = Zing_Auth_Util::getRealIp();
     //if ($result->session->hostname != $ipAddress)
     //	return $verified;
     // check useragent
     $useragent = strtoupper(md5($_SERVER['HTTP_USER_AGENT']));
     if ($result->session->useragent != $useragent) {
         return $verified;
     }
     $identity = array();
     $identity['display_name'] = $result->session->accountName;
     $identity['mail'] = "";
     $identity['login_time'] = $result->session->createTime;
     $identity['last_access_time'] = $result->session->lastAccess;
     $identity['uin'] = $result->session->uin;
     $identity['zin'] = $result->session->zin;
     $identity['username'] = strtolower($result->session->accountName);
     $verified["valid"] = true;
     $verified["identity"] = $identity;
     return $verified;
 }
Beispiel #2
0
 public function hasIdentity()
 {
     if (!empty($this->_identity)) {
         return true;
     }
     $zadmin_auth = Zing_Cookies::getCookie(self::COOKIE_ADMIN_AUTH_KEY);
     if (empty($zadmin_auth) || !Zing_Auth_Util::checkSessionKey($zadmin_auth)) {
         Zing_Cookies::clearCookies($zadmin_auth);
         return false;
     }
     $storage = $this->getStorage();
     $storage->setZAdminAuthKey($zadmin_auth);
     $identity = $storage->read();
     if (!empty($identity)) {
         //Identity in cache is array
         $this->_identity = new stdClass();
         $this->_identity->userid = $identity["userid"];
         $this->_identity->username = $identity["username"];
         $this->_identity->appid = $identity["appid"];
         $this->_identity->name = $identity["name"];
         $this->_identity->appname = $identity["appname"];
         $this->_identity->adminflg = $identity['adminflg'];
         return true;
     }
     return false;
 }
Beispiel #3
0
 public function create($uin, $zingId, $accountName)
 {
     $localIp = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '127.0.0.1';
     $longSession = 1;
     //default l� session d�i
     $this->_sessionId = Zing_Auth_Util::genSessionKey(true, true);
     //gen Long session
     $this->_server->set($this->_sessionId, "{$uin} {$zingId} {$accountName} {$localIp}", 0, 0);
     //never expires
     return $this->_sessionId;
 }
Beispiel #4
0
 public function isLogged()
 {
     $zauth = isset($_COOKIE['ZAUTH']) ? $_COOKIE['ZAUTH'] : '';
     $hasMeCookies = $zauth != '' && Zing_Auth_Util::checkSessionKey($zauth);
     if ($hasMeCookies && $this->_storage != null) {
         $this->_storage->setSessionId($zauth);
         $objSession = $this->_storage->read();
         if (!empty($objSession)) {
             $objSession->accountName = trim($objSession->accountName);
             if (!empty($objSession->accountName)) {
                 $this->setIdentityBySSO($objSession);
                 return true;
             }
         }
     }
     return false;
 }
Beispiel #5
0
 public function create()
 {
     $this->_zadminauth = Zing_Auth_Util::genSessionKey();
     return $this->_zadminauth;
 }