1、登录时,更新用户表中session_id字段字符串
登录控制器:
public function login(){
//登录成功后
M('member')->where(['id' => $member['id']])->save(['current_login_time'=>time(),'session_id'=>session_id()]);
}
2、在用户操作时,获取数据库已存的session_id,判断是否与当前值一致,若不一致则提示用户有用户登录账号
公用控制器:
protected function _initialize(){
//一个账号只能一个用户登录,旧登录用户被踢出
$session_id = M('member')->where(['id'=>$member_id])->getField('session_id');
$is_login = 0;
if($session_id!=session_id()){
$is_login = 1;
}
$this->assign('is_login',$is_login);
}
3、在页面公用HTML文件中写入提示js
<script type="text/javascript">
$(function(){
var is_login = '{$is_login}';
if(is_login=='1'){
layer.alert('有其他用户登录账号',{closeBtn:0},function(){
$.post("{:U('Login/logout')}", {}, function (logout_res) {
if (logout_res.status == 1) {
layer.msg(logout_res.msg, {}, function (index) {
layer.close(index);
window.location.href = logout_res.url;
});
} else {
layer.msg(logout_res.msg);
return false;
}
})
});
}
})
</script>
4、点击确定后先登录的用户退出登录状态