Descubre en este tutorial cómo crear y usar una contraseña de aplicación para la API REST de WordPress, sin necesidad de plugins.
En tutoriales anteriores has visto cómo usar la API REST, por ejemplo en el tutorial en el que te explicaba cómo mostrar las entradas de otra web mediante un shortcode usando la API REST de WordPress.
En ese caso, no necesitas autenticarte ya que son datos que están disponibles para la lectura, a no ser que desactives la API REST.
Pero para consultar otros datos más sensibles, como por ejemplo los plugins instalados, o para crear o borrar posts, necesitas autentificarte. Como podrás imaginar, esto es así por motivos de seguridad. 😉
Si haces una búsqueda al respecto verás que hay varios plugins que te ayudan a hacerlo, pero realmente ya no son necesarios.
A partir de WordPress 5.6 el plugin Application Passwords pasó a formar parte del core, así que tienes una forma nativa para crear una contraseña que te permita autentificarte con la API REST.
Así que en este tutorial vas a ver cómo puedes obtener estos datos y utilizarlos para usar la API REST de forma autenticada.
La ventaja es que una vez sepas cómo se hace podrás acceder y modificar todos los endpoints de la API REST. Esto te abre un abanico, casi infinito, de posibilidades.
Vamos a ver cómo puedes conseguirlo.
Instrucciones para crear una autentificación para la API REST de WordPress
1. Crea una contraseña de aplicación en WordPress
Lo primero que tienes que hacer es crear una nueva contraseña de aplicación.
Para ello ve (en la instalación de WordPress donde te quieres autentificar) a Usuarios > Perfil y haz scroll hasta el apartado de «Contraseñas de aplicación».
A continuación rellena el campo de nombre de nueva contraseña (puede ser cualquiera) y pulsa en «Añadir una nueva contraseña de aplicación».
Una vez hecho, se mostrará el nombre de la contraseña y la contraseña. Asegúrate de copiarla y guardarla a buen recaudo porque no volverán mostrarse.
2. Utiliza los datos para identificarte
Ahora ya tienes el par de credenciales (usuario y contraseña) que te permitirán autenticarte a través de la API REST.
A continuación te muestro un ejemplo de cómo podrías autentificarte para acceder al endpoint de los plugins:
Para ver este código y los otros 2055 snippets de esta web,
identifícate o suscríbete aquí.
En la primera parte del snippet defines las variables:
$username
= Nombre de usuario de WordPress$password
= Contraseña de aplicación obtenida en el paso anterior$website_url
= La URL de la web$request_ur
l = La URL donde se hace la petición. En este caso es la concatenación:$website_url . '/wp-json/wp/v2/plugins/'
que accede al endpoint para plugins de la API REST.
Acuérdate de cambiar el valor de las siguientes variables por las de tu caso.
A continuación usas la función wp_remote_request
para obtener el endpoint para plugins (con el método GET
).
La parte de la autenticación se realiza en la cabecera (‘headers’) utilizando la función base64_encode
para que cifre el usuario y contraseña.
'headers' => array(
'Authorization' => 'Basic ' . base64_encode( $username . ':' . $password ),
),
Este es solo un ejemplo, puedes cambiar tanto el endpoint de la API REST a la que accedes como el método HTTP.
En los próximos tutoriales te explicaré cómo puedes sacarle partido con casos prácticos.
Conclusiones
Ahora ya sabes cómo crear y utilizar la autenticación de la API REST de WordPress sin necesidad de usar ningún plugin.
Además, has visto las posibilidades que abre. Con un poco de práctica e imaginación puedes usar WordPress desacoplado o headless conjuntamente con una app.
¿Alguna duda? Te leo en los comentarios.
Y si quieres darme una sugerencia para próximos tutoriales, déjamela en el formulario de contacto. Ventajas de ser suscriptor. 😉