PHP中间件验证登录

  public function index(){
        $rule = [
            'username' => 'require',
            'password' => 'require',
        ];
        $message = [
            'username.require' => '用户名不能为空',
            'password.require' => '密码不能为空',
           // 'customer_phone.mobile' => '客户手机格式不正确',
        ];
        //字段校验
        $params = $this -> params;
        $conf = $this -> validate -> make($rule, $message);
        if(!$conf -> check($params)) {
           // throw new Exception($conf -> getError(), api::PARAM_ERROR);
            return $this->api->error($conf -> getError());
        }
        $admin_user =  Administrator::field('salt,id,password,token')->where('name',$params['username'])->find();
        if($admin_user){
            $params['id']=$admin_user['id'];
            $params['token']=$admin_user['token'];
              if($admin_user['password']== md5($params['password'].$admin_user['salt'])){
                  return $this->loginUpdata($params);
              }else{

                  return $this->api->error('登录失败');
              }
        }else{

            return $this->api->error('登录失败');
        }
    }
 public function loginUpdata($admin_info) {     //登录验证
        $ip = $this -> request -> ip();
        $last_time = time();
        $hash_ids_str = config("hash_ids_str");
        $hashids   = new Hashids($hash_ids_str);   //hashids 加密
        $token_str = config("token_str");
        $token     = md5($token_str.$last_time);
        $up_data   = [
            "login_ip" => $ip,
            "login_time" => $last_time,
           // "token" => $token
        ];
        $user_model = new Administrator();
        $save_result = $user_model -> isUpdate(true) -> save($up_data, [
            "id" => $admin_info['id']
        ]);
        if(isset($admin_info['password'])) unset($admin_info['password']);
        if(isset($admin_info['rand_str'])) unset($admin_info['rand_str']);
        if($save_result) {
                $echo_data = [
                    "uid" => $hashids -> encode($admin_info['id']),
                    //"token" => $token,    //重置token  单点登录
                    "token"=>$admin_info['token'],   //    不重置token  多点登录
                    'name' => $admin_info["username"],
                ];
                cookie("bk_wid", null);
               return $this->api->success("登录成功", $echo_data);
        } else {
                cookie("bk_wid", null);
                return $this -> api -> error("登录失败",0);
        }
    }

中间件验证登录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值