使用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');
}