今天项目有个需求就是,需要在两个应用模块,假如是home和admin两个模块,要求同一个账户,帐号密码保存在session中,如果没有登陆过home,只登陆过admin,那么在跳转home应用下的控制器应该跳转到登陆界面。
这就需要设置session的前缀了。
下面是代码
我用的是tp5.0框架,可以直接进行session初始化用session函数。
session([
'prefix' => 'index',
'type' => '',
'auto_start' => true,
]);
session([
'prefix' => 'index',
'type' => '',
'auto_start' => true,
]);
这两个前缀不一致,访问的时候是这样访问的:$_SESSION['index']['id'];
这样就有了index前缀的session数组。打印出来看是
这样检测各应用下的id就可以知道,当前有没有登陆过该应用。
session([
'prefix' => 'index',
'type' => '',
'auto_start' => true,
]);
//设置前缀放在设置session之前
session('id', $data['ID']);
session('Account', $data['Account']);
session('AccountType', $data['AccountType']);
session('AuthoriezdModules', $data['AuthoriezdModules']);
setcookie('Account',$data['Account'],time()+3600*24*31,"/");
setcookie('password',$condition['Pwd'],time()+3600*24*31,"/");
// myLog(session('id'),__LINE__);die;
// myLog($_SESSION['index']['id'],__LINE__);die;
// setcookie('remember',$remember,time()+3600);
// 保存3个小时
$lifeTime = 3600*3;
setcookie(session_name(), session_id(), time() + $lifeTime, "/");