private function __getUserIdFromSession($sessionId) { $dbs = new DatabaseSession(); $sessionData = $dbs->read($sessionId); $unserializedData = []; $offset = 0; while ($offset < strlen($sessionData)) { if (!strstr(substr($sessionData, $offset), "|")) { throw new \Exception("invalid data, remaining: " . substr($sessionData, $offset)); } $pos = strpos($sessionData, "|", $offset); $num = $pos - $offset; $varname = substr($sessionData, $offset, $num); $offset += $num + 1; $data = unserialize(substr($sessionData, $offset)); $unserializedData[$varname] = $data; $offset += strlen(serialize($data)); } return !empty($unserializedData['Auth']['User']['id']) ? $unserializedData['Auth']['User']['id'] : null; }
/** * test the garbage collector * * @return void */ public function testGc() { TableRegistry::clear(); ini_set('session.gc_maxlifetime', 0); $storage = new DatabaseSession(); $storage->write('foo', 'Some value'); sleep(1); $storage->gc(0); $this->assertSame('', $storage->read('foo')); }
public function gc($expires = null) { return Cache::gc($this->cacheKey) && parent::gc($expires); }
/** * test the garbage collector * * @return void */ public function testGc() { TableRegistry::clear(); Configure::write('Session.timeout', 0); $storage = new DatabaseSession(); $storage->write('foo', 'Some value'); sleep(1); $storage->gc(0); $this->assertFalse($storage->read('foo')); }