restructured session driver interfaces and added cookie session driver.
This commit is contained in:
54
system/session/cookie.php
Normal file
54
system/session/cookie.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php namespace System\Session;
|
||||
|
||||
use System\Crypt;
|
||||
use System\Config;
|
||||
|
||||
class Cookie implements Driver {
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
if (Config::get('application.key') == '')
|
||||
{
|
||||
throw new \Exception("You must set an application key before using the Cookie session driver.");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Load a session by ID.
|
||||
*
|
||||
* @param string $id
|
||||
* @return array
|
||||
*/
|
||||
public function load($id)
|
||||
{
|
||||
if (\System\Cookie::has('session_payload'))
|
||||
{
|
||||
return unserialize(Crypt::decrypt(\System\Cookie::get('session_payload')));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Save a session.
|
||||
*
|
||||
* @param array $session
|
||||
* @return void
|
||||
*/
|
||||
public function save($session)
|
||||
{
|
||||
$c = \System\Config::get('session');
|
||||
|
||||
\System\Cookie::put('session_payload', Crypt::encrypt(serialize($session)), $c['lifetime'], $c['path'], $c['domain'], $c['https'], $c['http_only']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a session by ID.
|
||||
*
|
||||
* @param string $id
|
||||
* @return void
|
||||
*/
|
||||
public function delete($id)
|
||||
{
|
||||
\System\Cookie::forget('session_payload');
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user