4 de septiembre de 2023

Autenticación JWT con la API de WordPress

¿Estás haciendo una aplicación móvil o un frontend que necesita extraer información securizada de un sistema WordPress? En este artículo me gustaría compartir mi experiencia creando un acceso securizado vía JWT (Json Web Token) con la API de WordPress de forma rápida y sencilla.

Instalando el plugin correcto

Lo primero que necesitamos, como imaginarás, es una web con WordPress en la que podamos instalar un plugin. El plugin en cuestión es JWT Authentication for WP REST API V2. Debes saber, que antes de recomendarte un plugin lo he probado a conciencia y he revisado que sea 100% seguro, de otra forma, no te lo recomendaría o trataría de hacerlo por otra vía. Este, es completamente seguro y recomendado.

Antes de instalarlo, debes de tener las siguientes recomendaciones en cuenta:

  • Versión de PHP mínima 5.3.0
  • Si tu WordPress está en un hosting compartido (lo más normal) es posible que tengas la autenticación por HTTP desactivada. En ese caso deberás editar el archivo .htaccess con el siguiente código:
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
  • Por último y con el fin de securizar tus tokens generados, necesitamos añadir una línea a nuestro wp-config.php. La línea en cuestión es la siguiente:
define('JWT_AUTH_SECRET_KEY', 'tu-clave-secreta');

Esta línea lo que hace es generar tus tokens de seguridad en base a la semilla que está entre comillas simples, en este caso 'tu-clave-secreta'.

Probando que funciona la autenticación vía JWT

Ahora que ya tenemos nuestro plugin instalado y configurado en nuestro WordPress, podemos proceder a realizar las pruebas pertinentes. Para ellos usaremos una aplicación llamada Postman.

Postman, no solo te servirá para probar la autenticación sino que podrás probar con él cualquier API que encuentres por internet y analizar con él la respuesta que te da dicha API para usarla donde necesites.

¿Qué parámetros debemos introducir en Postman para probar tu autenticación JWT?

Lo primero, es la URL que debe de ser similar a esta:

  • https://tuwebwordpress.com/wp-json/jwt-auth/v1/token

El método que debemos usar para enviar la información es POST y en la pestaña body debes enviar los parámetros 'username' y 'password' como en la siguiente imagen:

Al pulsar en SEND deberías de tener una respuesta similar a la que aparece en la imagen.

Recuerda que el usuario que enviamos en username debe existir en tu WordPress y comprueba que la contraseña sea la correcta.

Una vez que tenemos el token, ya podríamos autenticarnos con el usuario y con él usando la siguiente url en Postman.

Usando el JWT en Postman para comprobar el acceso

Para comprobar que el token que hemos recibido está funcionando correctamente, podemos enviar la siguiente url:

  • https://tuwebwordpress.com/wp-json/jwt-auth/v1/token/validate

Al igual que la petición anterior debemos usar el método POST pero en esta ocasión lo que debemos modificar es la pestaña Headers para añadir un nuevo header llamado Authorization. En él, debemos añadir lo siguiente:

  • Bearer + Token

Tal y como se ve en la imagen, añadiremos la palabra clave Bearer seguido del token que nos devolvió WordPress en el paso anterior. Si todo va bien, la respuesta debería ser un status 200.

Con este sencillo plugin y unos pocos pasos, ya puedes autenticar en tu aplicación frontend o móvil a los usuarios que tengas en tu web WordPress sin necesidad de usar otro backend.

¡Espero que te haya servido este artículo y si tienes cualquier duda me dejes un comentario para ayudarte a resolverlo!

¡IMPORTANTE!

He creado una academia online para enseñar a todo el mundo a crear aplicaciones móviles desde 0. He empezado con un curso de desarrollo de aplicaciones móviles con herramienta noCode que se llama FlutterFlow y próximamente haremos uso de esta autenticación con la API de WordPress para la creación de la app del curso.

Si estás interesado en aprender, pásate por https://va360.academy o por el canal de Youtube.

¡Te espero!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

¿Quieres que trabajemos juntos?
¿HABLAMOS DE TU IDEA?
Todos los derechos reservados.

VAYESA
× ¿Puedo ayudarte?
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram