wyrihaximus/react-http-middleware-session

react/http 中间件,负责处理会话

4.1.0 2021-03-17 20:21 UTC

README

Continuous Integration Latest Stable Version Total Downloads Code Coverage Type Coverage License

安装

通过 Composer 安装,请使用以下命令,它将自动检测最新版本并将其绑定到 ^

composer require wyrihaximus/react-http-middleware-session

此中间件负责处理会话。它使用 react/cache 进行存储或任何实现 React\Cache\CacheInterface 的缓存处理器。

用法

$server = new Server(
    $loop,
    /** Other Middleware */
    new SessionMiddleware(
        'CookieName',
        $cache, // Instance implementing React\Cache\CacheInterface
        [ // Optional array with cookie settings, order matters
            0, // expiresAt, int, default
            '', // path, string, default
            '', // domain, string, default
            false, // secure, bool, default
            false // httpOnly, bool, default
        ],
    ),
    /** Other Middleware */
    function (ServerRequestInterface $request) {
        $session = $request->getAttribute(SessionMiddleware::ATTRIBUTE_NAME);

        // Overwrite session contents, the details of changing specific keys is up to you
        $session->setContents([
            'foo' => 'bar',
        ]);

        // Get session contents
        var_export($session->getContents()); // Prints something like: ['foo' = 'bar']

        return new Response();
    }
);

响应缓存

如果使用此中间件与 wyrihaximus/react-http-middleware-response-cache 一起,请查看 wyrihaximus/react-http-middleware-response-cache-session-cache-configuration 以确保您不会缓存具有活动会话的用户响应。

数组之间的转换

如果您需要将会话传递给子进程,它有 toArrayfromArray 方法

$array = $session->toArray();
// Transfer to child process
$session = (new Session('', [], new RandomBytes()))->fromArray($array);
// The same can be done transferring changes back to the parent

许可协议

MIT 许可协议 (MIT)

版权所有 (c) 2020 Cees-Jan Kiewiet

特此授予任何人免费获得本软件及其相关文档副本(“软件”)的副本的权利,以不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许获得软件的人进行此类操作,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论此类索赔、损害或其他责任是由合同行为、侵权行为或其他行为引起的,无论是否与软件或其使用或其它有关。