thinkphp下制作用户永久登陆代码

    xiaoxiao2021-11-13  88

    有个项目需要用到用户永久登陆,使用了cookie来制作,现在把代码贴出来,仅作记录,水平有限,大牛勿笑,有更好写法请指教。 public function login(){ G('one'); $user = new \Think\Model\MongoModel("user"); $userinfo=$_SESSION['userinfo']; if($userinfo){ echo $userinfo['username']."--session---登陆成功!<br/>"; }else{ $auth=$_COOKIE["auth"]; if($auth){ // echo $auth; $check_cc=explode(':', $auth); // dump($check_cc); $auths['ssid']=$check_cc[0]; $auths['token']=$check_cc[1]; $checkauto=$user->where($auths)->find(); if($checkauto){ session('userinfo',$checkauto); echo $checkauto['username']."--cookie--登陆成功!<br/>"; } } } if($_POST){ $username=I('post.username'); $pwd=I('post.pwd'); $where['username']=$username; $where['pwd']=$pwd; $checkuser=$user->where($where)->find(); // echo $user->getLastSql(); // dump($checkuser); if($checkuser){ // 开始cookie365天保存 $sid=session_id(); $salt=rand(100000,999999); $token=md5($salt.$username.$salt); $cookiecontent=$sid.':'.$token; setcookie('auth',$cookiecontent,time()+3600*24*365); session('userinfo',$checkuser); $dd['ssid']=$sid; $dd['salt']=$salt; $dd['token']=$token; $bid=$user->where(array('_id'=>$checkuser['_id']))->save($dd); if($bid){ echo "用户:".$checkuser['username'].'--直接--登陆成功!<br/>'; } }else{ echo "登陆失败<br/>"; } echo "<a href='".U('login')."'>前往登陆</a><br/><br/>"; } G('two'); echo G('one','two').'s'; $this->display(); }
    转载请注明原文地址: https://ju.6miu.com/read-678239.html

    最新回复(0)