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);
}
}
PHP中间件验证登录
最新推荐文章于 2023-12-16 00:30:00 发布