多应用session插件

v1.0.1 版本
2022-04-30 版本更新时间
563 安装
4 star

简介

多应用session插件,可以为不同的应用设置不同的session配置

安装

composer require webman/multi-session

注意
要求 workerman/webman-framework >= 1.3.12 workerman/workerman: ^4.0.36

使用

session配置文件在 config/plugin/webman/multi-session/session.php

<?php
return [
    // 以请求路径区分不同session配置,路径必须以 / 开头
    '/admin' => [
        'lifetime' => 7*24*60*60, // session过期时间
        'cookie_lifetime' => 7*24*60*60, // cookie过期时间
        'http_only' => true, // 建议为true,开启后js无法获取cookie内容
        'domain' => '', // cookie域名,留空即可
        'secure' => false, // cookie只能用https协议发送给服务器,默认false
        'gc_probability' => [1, 1000], // 千分之一的纪律触发session回收检查
        'same_site' => '', // 默认留空,也可以是Strict或Lax或者None 
    ],
    '/api' => [
        'lifetime' => 7*24*60*60,
        'cookie_lifetime' => 7*24*60*60,
        'http_only' => true,
        'domain' => '',
        'secure' => false,
        'gc_probability' => [1, 1000],
        'same_site' => '',
    ]
];

以上配置,
如果请求的url的path路径是以/admin开头,则使用/admin对应的session配置;
如果请求的url的path路径是以/api开头,则使用/api对应的session配置;
如果请求的path路径不匹配任何配置,则默认使用 config/session.php中的配置。

注意

本插件是基于全局中间件实现的,如果你有自己的全局中间件,由于中间件顺序问题,你的全局中间件里可能无法按预期使用session,则请参考以下步骤重新设置本插件中间件,让本插件的中间件优先于所有的全局中间件。

  1. 删除 config/plugin/webman/multi-session/middleware.php
  2. config/middleware.php 里配置里首部添加如下配置
return [
    '' => [
        Webman\MultiSession\Middleware::class, // 注意在首部添加,让其优先于其它全局中间件

        // ... 这里省略了其它配置... 
    ]
];