单人登录、限时登录

14 篇文章 0 订阅

需求:1、一个账号只能一个人登陆。2、系统无操作,30分钟后自动退出

框架:TP3.2


loginController

$checkstr = md5(time().rand(1000, 9999));
		
C('default_cache_time') = 30*60;

cookie('current_adminid', $admin_item['adminid'], C('default_cache_time'));
//账号可能是中文,使用urlencode
cookie('current_admin_account', urlencode($admin_item['account']));
cookie('current_admin_group', urlencode($admin_item['groupsn']));
		
cookie('current_admin_checkstr', $checkstr);
		
S('admin_login_checkstr_'.$admin_item['adminid'], $checkstr);
		
		
AdminBasicAction 
		 
protected function _initialize(){
	parent::_initialize();
	$menus= null;
	
        //限时登录,因为cookie('current_adminid')只保存30分钟,所以30分钟后,点击系统自动跳到登录页
	if(!cookie('current_adminid')){
		$this->redirect("Admin/LoginMgr/login");
		return;
	}
		
	//一个账号只能在一个地方登录
	$checkstr_in_cache = S('admin_login_checkstr_'.cookie('current_adminid'));
	$checkstr_in_cookie = cookie('current_admin_checkstr');
	
        if ($checkstr_in_cache != $checkstr_in_cookie){
		$this->error("账号在其他地方登陆了", U("Admin/LoginMgr/login"));
		return;
	}
	
//没到30分钟,重写cookie,相当于续命30分钟
cookie('current_adminid', cookie('current_adminid'), C('default_cache_time'));

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值