codin/session

0.1.0 2021-03-29 14:24 UTC

This package is auto-updated.

Last update: 2024-08-29 05:43:55 UTC


README

会话数据存储为json编码的字符串。

  • 不受PHP序列化RCE攻击的影响

使用数组会话存储快速入门

use Session\{
    Session,
    Cookies,
    Storage\ArrayStorage
};

$session = new Session(new Cookies, new ArrayStorage);
$session->start();

$session->put('foo', 'bar');
echo $session->get('foo'); // output "bar"

$session->remove('foo');

$b = $session->get('foo', 'baz');
echo $b; // output "baz"

关闭会话并设置cookie

$session->close();
header('Set-Cookie', $session->cookie());

# Using PSR7 Response
$session->close();
$response = new Psr\Http\Message\Response;
$response->withAddedHeader('Set-Cookie', $session->cookie());

会话存储处理程序

Redis示例

use Session\{
    Session,
    Cookies,
    Storage\RedisStorage
};

$redis = new \Redis;
$ttl = 3600;
$storage = new RedisStorage(redis, $ttl);
$session = new Session(new Cookies, $storage);

文件存储示例

use Session\{
    Session,
    Cookies,
    Storage\FilesystemStorage
};

$ttl = 3600;
$adapter = new \League\Flysystem\Adapter\Local('/path/to/sessions/');
$filesystem = new \League\Flysystem\Filesystem($adapter);
$storage = new FilesystemStorage($filesystem, $ttl);

// remove expired sessions
$storage->purge();

$session = new Session(new Cookies, $storage);