301, 'msg' => '登录失效!', 'data' =>null]; } $user_token = $this->where('token', $token)->find(); if (empty($user_token)) { return ['code' => 301, 'msg' => '登录失效!!', 'data' => null]; } if ($user_token['expiretime'] < time()) { return ['code' => 301, 'msg'=> '登录失效!!!', 'data' => null]; } $block1 = db::name('block')->where(['type' => 1,'type_text' => $user_token['user_id']])->find(); $userState = db::name('user')->where(['id' => $user_token['user_id']])->value('status'); if(isset($block1) || $userState == 2){ return ['code' => 301, 'msg'=> '账号已被封禁,请联系管理员','data' => null]; } $login_device = request()->header('deviceId'); $block2 = db::name('block')->where(['type' => 2,'type_text' => $login_device])->find(); if(isset($block2)){ return ['code' => 301, 'msg'=> '设备已被封禁,请联系管理员','data' => null]; } $Ip = request()->ip(); $block3 = db::name('block')->where(['type' => 3,'type_text' => $Ip])->find(); if(isset($block3)){ return ['code' => 301, 'msg'=> 'IP已被封禁,请联系管理员','data' => null]; } return ['code' => 1, 'msg'=> '成功','data' => $user_token['user_id']]; } //更新token public function update_tokens($user_id) { $token =md5($user_id . date('YmdHis') . generateRandom(32)); $expiretime = time() + 3600 * 24 * 7; $data_token = $this->where('user_id', $user_id)->find(); if(empty($data_token)){ $data_token = []; $data_token['user_id'] = $user_id; $data_token['token'] = $token; $data_token['expiretime'] = $expiretime; if(!($this->save($data_token))){ return ['code' => 0, 'msg'=> 'token更新失败']; } }else{ if(!($this->where('user_id', $user_id)->update(['token' => $token, 'expiretime' => $expiretime]))){ return ['code' => 0, 'msg'=> 'token更新失败']; } } return $token; } //更新token public function update_token($user_id) { $tokenString = md5($user_id . date('YmdHis') . generateRandom(32)); // 4. 核心操作:将Token与用户ID关联,并存入Redis(配置的独立库) // 参数说明:Token::set(‘token字符串’, ‘用户ID’, ‘有效期(秒)’) $result = \app\common\library\Token::set($tokenString, $user_id, 3600 * 24 * 7); $expiretime = time() + 3600 * 24 * 7; $data_token = $this->where('user_id', $user_id)->find(); if(empty($data_token)){ $data_token = []; $data_token['user_id'] = $user_id; $data_token['token'] = $tokenString; $data_token['expiretime'] = $expiretime; if(!($this->save($data_token))){ return ['code' => 0, 'msg'=> 'token更新失败']; } }else{ if(!($this->where('user_id', $user_id)->update(['token' => $tokenString, 'expiretime' => $expiretime]))){ return ['code' => 0, 'msg'=> 'token更新失败']; } } return $result ? $tokenString : null; } }