Esempio n. 1
0
function decodeParams($params)
{
    if (!is_null($params)) {
        //Comprobamos si es un objeto.
        if (is_object($params)) {
            $params = get_object_vars($params);
        }
        foreach ($params as $key => $value) {
            if (!is_array($value) && !is_object($value)) {
                if (!is_numeric($value)) {
                    $params[$key] = utf8_decode(base64_decode($value));
                } else {
                    $params[$key] = $value;
                }
            } else {
                $params[$key] = decodeParams($params[$key]);
            }
        }
    }
    return $params;
}
Esempio n. 2
0
 protected function process($conn, $message)
 {
     //Decodificamos el mensaje.
     $msg = (array) json_decode($message, true);
     echo var_dump($msg) . PHP_EOL;
     //Comprobamos si existe el servicio solicitado.
     if (array_key_exists($msg['service'], $this->websocket_services)) {
         //Obtenemos el servicio.
         $service = $this->websocket_services[$msg['service']];
         //Decodificamos los parámetros.
         if ($msg['encode']) {
             $params = decodeParams($msg['params']);
         } else {
             $params = $msg['params'];
         }
         //Comprobamos si el servicio requiere token de acceso.
         if (isset($service['token_required'])) {
             //Comprobamos si hay token de sessión en la petición
             if (array_key_exists("token", $msg)) {
                 //decodificamos el token de sesión.
                 $token = json_decode(base64_decode($msg['token']));
                 if (isset($service['require_user_id'])) {
                     $this->resolveService($service, [$token->idUser], $conn);
                 } else {
                     $this->resolveService($service, $params, $conn);
                 }
             } else {
                 echo json_encode(array("error" => true, "data" => "Accesso no permitido"));
             }
         } else {
             $this->resolveService($service, $params, $conn);
         }
     } else {
         echo json_encode(array("error" => true, "data" => "Servicio no disponible"));
     }
 }
Esempio n. 3
0
 $service = filter_input(INPUT_POST, 'service', FILTER_SANITIZE_STRING, FILTER_NULL_ON_FAILURE);
 $token = filter_input(INPUT_POST, 'token', FILTER_SANITIZE_STRING, FILTER_NULL_ON_FAILURE);
 $encode = filter_input(INPUT_POST, 'encode', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
 $params = $_REQUEST['params'];
 //Comprobamos si el servicio solicitado es HTTP_SERVICE.
 if (array_key_exists($service, $services)) {
     if ($services[$service]['token_required']) {
         //Comprobamos si el token de sesión está presente en la petición.
         if ($token) {
             //decodificamos el token de sesión.
             $token = json_decode(base64_decode($token));
             if (!is_null($params)) {
                 if (!is_array($params)) {
                     $params = (array) json_decode($params, true);
                 }
                 $params = $encode ? decodeParams($params) : $params;
             }
             //Ejecutamos la acción del controlador
             $response = baseController::execute($services[$service]['controller'], $params);
             //Codificamos los datos de la respuesta.
             if ($encode) {
                 encodeData($response["response_message"]['data']['msg']);
             }
             //Enviamos respuesta
             echo json_encode($response["response_message"]);
         } else {
             echo json_encode(array("error" => true, "data" => "Acceso no permitido"));
         }
     }
 } else {
     echo json_encode(array("error" => true, "data" => "Servicio no disponible"));