cookie和session使用
一、总结
1、需要使用的场景:验证用户是否登录时 获取用户的用户名时 退出登录时
2、cookie和session在什么时候记录:在登录成功之后
二、cookie和session使用
1、在index(前台)模块登录成功的时候记录cookie和session
if($res){
//5、登录成功,将数据存入cookie和session
//5.1、将登录信息写入session
session('id', $res['id']);
session('username', $res['username']);
session('password', $res['password']);
//5.2、设置cookie
cookie('id', $res['id'], 3600);
cookie('username', $res['username'], 3600);
cookie('password', $res['password'], 3600);
if($data['status']) $this->success("即将跳转到老师界面!!",url('teacher/index/index'));
else $this->success("即将跳转到学生界面!!",url('student/index/index'));
}
2、其它用到cookie和session的位置
页面 {$Request.session.username}
控制器 session('username')
3、权限验证(Base控制器)中需要来判断系统中是否有cookie和session来确定是否已经登录了系统
public function _initialize()
{
if(!session('username')){
//如果cookie存在的话
if(cookie('username')){
//设置session
session('id', cookie('id'));
session('username',cookie('username'));
session('password', cookie('password'));
// dump(cookie('username'));die;
return;
}
$this->error('您尚未登录系统',url('index/login/login'));
}
}
4、退出登录时销毁cookie和session中的数据
public function logout(){
session(null);
cookie('id', null);
cookie('username', null);
cookie('password', null);
//退出登录清空session之后要成功跳转
$this->success('退出系统成功',url('index/index/index'));
}