php 一个账号禁止多浏览器多用户登录

思路:可以弄个随机码每次登陆的时候记录到session和数据库里,然后做对比不一样就退出登陆
代码:

public function actionLogin() {

    if(isset($_POST['submit'])){

         $username=$this->getRequestParam('username');
         $password=$this->getRequestParam('password');

         $member=new Member();

         if($member->login($username,$password)){

            $userInfo=getUserInfo();// 获取用户信息

            $login_time = time();
            //生成随机串
            $m_login['token'] =md5($login_time.$userInfo['userid']);
            //存到数据库 
            $ml = new MemberLogin();
            $ml->saveData($m_login,'userid=:userid',array(':userid'=>$userInfo['userid']));
            //存到session
            $_SESSION['login_token'] = $m_login['token'];
        }
    } 
}
//所有的控制器都继承这个控制器
public function beforeAction() {
    //获取数据库中存的登录值
    $ml = new MemberLogin();
    $m_login = $ml->getOne('userid=:userid',array(':userid'=>$userInfo['userid']),'token');
    //和session中的值对比,不一样则退出登录
    if($_SESSION['login_token']!=$m_login['token']){
        Yii::$app->user->logout();
        $this->error('您的账号已在别处登录',Yii::$app->urlManager->createUrl('/index/login'),3);
    }
 }

注意:以上的代码是在yii2框架中实现的,请根据实际应用更改

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值