ThinkPHP中:多个项目共享同一个session问题

时间:2023-03-08 15:39:05
ThinkPHP中:多个项目共享同一个session问题

使用ThinkPHP3.1.3版本的session时,多个项目同时调试会使得一维数组式的session不够用,导致在A项目登录后台后,在B项目就不用登录后台就可以进入后台操作了。

问题在于他们都调用同一个session文件sess_d55a5f55db022fb119fc38193c4cecac。我不知道怎么去定义这个文件的命名方式。但是,我找到了解决多个项目共享同一个session但又不相互冲突的方法。这个方法的原理就是,将session变为二维数组。具体操作是在配置文件中加上session前缀(命名方式最好是sess+项目名)

     //session前缀
'SESSION_PREFIX'=>'mysessA',

再以二维session使用

取值

$_SESSION[C('SESSION_PREFIX')]['uid'];

对应的退出登录

     public function loginOut(){
$_SESSION[C('SESSION_PREFIX')]=null;
$this->redirect(GROUP_NAME.'/Login/index');
}