✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Envío de encabezados de autorización con WordPress

44

Siempre que hagamos solicitudes remotas con WordPress, es probable que usemos una de las siguientes funciones:

Y, sí, a veces usaremos cURL dependiendo de la naturaleza del proyecto, pero eso está fuera del contenido de esta publicación.

Envío de encabezados de autorización con WordPress

Para este artículo, quiero hablar específicamente sobre cómo realizar solicitudes remotas y especificar encabezados contra una API de terceros.

Encabezados de autorización con WordPress

Siempre que se trata de realizar solicitudes asincrónicas con WordPress, el proceso suele ser así:

  1. Configure la función de JavaScript para hacer una llamada al lado del servidor (con un nonce seguro, por supuesto),
  2. Haga que el lado del servidor realice la solicitud utilizando una de las funciones antes mencionadas,
  3. Devuelve la respuesta en forma de mensaje de éxito o de error ,
  4. Haga que el JavaScript del lado del cliente maneje la respuesta de cualquier manera que parezca adecuada en función de la respuesta.

Pero, ¿qué sucede si la solicitud de API que debe realizar desde el servidor requiere algo más que un punto final básico con algunos parámetros?

Más específicamente, ¿qué sucede si lo que está escribiendo requiere que proporcione algún tipo de autorización para su trabajo? Por suerte, WordPress nos permite establecer encabezados que resuelven exactamente esto.

Si desea implementar algo como esto, supondré que el tipo de contenido será el de JSON y que la autorización será algún tipo de token (sin embargo, su implementación puede variar según el sistema con el que esté). laboral).

En este caso, mi token simplemente se identificará como $token. Y aquí hay un ejemplo simple:

<?php

$response = wp_safe_remote_post(
    $url,
    [
        'headers'     => [
            'Content-Type'  => 'application/json',
            'Authorization' => $token
        ],
        'body'        => wp_json_encode($args),
        'method'      => 'POST',
        'data_format' => 'body',
    ]
);

Algo digno de mención

Si su host se ejecuta en Apache y este tipo de solicitud no funciona, es probable que necesite actualizar su htaccessarchivo para que incluya la siguiente regla: SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1.

Felicidades a George por conectarme con eso.

Fuente de grabación: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More