多应用session插件
v1.0.1
版本
2022-04-30
版本更新时间
801
安装
3
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,则请参考以下步骤重新设置本插件中间件,让本插件的中间件优先于所有的全局中间件。
- 删除
config/plugin/webman/multi-session/middleware.php
- 在
config/middleware.php
里配置里首部添加如下配置
return [
'' => [
Webman\MultiSession\Middleware::class, // 注意在首部添加,让其优先于其它全局中间件
// ... 这里省略了其它配置...
]
];