Ejemplo n.º 1
0
 /**
  * 执行查询用户设备信息
  *
  * @return mixed $value 返回最终需要执行完的结果
  * @throws
  * @since 1.0.7
  */
 private function judgeDevice()
 {
     $deviceType = $_REQUEST['device_type'];
     //这里对iPhone/iPad做了一个补偿操作,此前的绑定设备类型出了错误。因为类型是6而不是5
     if (MiniHttp::isiPhone()) {
         $deviceType = 6;
     }
     $deviceName = urldecode($_REQUEST['device_name']);
     $deviceInfo = $_REQUEST['device_info'];
     if (!empty($deviceType) && !empty($deviceName) && !empty($deviceInfo)) {
     } else {
         # 当用户传递过来的设备信息都为空时,表示为三方开发者
         if (empty($deviceType) && empty($deviceName) && empty($deviceInfo)) {
             $deviceType = 10;
             $deviceName = "第三方用户";
             $deviceInfo = "第三方设备";
         } else {
             throw new MAuthorizationException("param_is_null", MConst::HTTP_CODE_400);
         }
     }
     //如被锁定,且是网页端则不进行登录。
     $userName = $_REQUEST['username'];
     if (empty($userName)) {
         $userName = $_POST['username'];
     }
     $name = urldecode($userName);
     $isLock = MiniUser::getInstance()->isLock($name);
     $user = false;
     if (!($isLock && MiniHttp::clientIsBrowser())) {
         $user = self::searchUser();
     }
     if ($user === false) {
         //如果用户在非锁定状态,则错误数+1
         if (!$isLock) {
             MiniUser::getInstance()->setPasswordError($name);
         }
         return false;
     } else {
         //如果用户登录正确,则把密码错误次数清空
         MiniUser::getInstance()->cleanPasswordError($name);
     }
     if (!$user["user_status"]) {
         throw new MAuthorizationException("User has disabled.", MConst::HTTP_CODE_407);
     }
     //对设备进行检测
     $device = DeviceManager::getDevice($user["id"], $deviceType, $deviceName, $deviceInfo);
     return $device;
 }