多应用session插件

v2.1.0 版本
2025-02-09 版本更新时间
1611 安装
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,则请参考以下步骤重新设置本插件中间件,让本插件的中间件优先于所有的全局中间件。

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