Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Autenticación con JWT en la API de WordPress

En un artículo anterior habíamos visto cómo usar la API Rest de WordPress, en los ejemplos usamos la autenticación básica como demostración, sin embargo una autenticación que se usa en proyectos reales es usualmente la autenticación con JWT (Json Web Token)

 

Generalidades

WordPress por defecto usa cookies para comprobar que un usuario esta logueado, sin embargo una manera alterna de validar un usuario es usar JWT, el cual es especialmente usado para conectarse con APIs.

 

¿Qué es JWT (JSON Web Token)?

Es un estándar basado en JSON para crear un token, el cual se envía entre aplicaciones. El uso más común de los JWT es el manejo de autenticación entre aplicaciones móviles o web.

La apariencia del token es una cadena de texto similar al siguiente código


eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC93b3JkcHJlc3M1Ni5sb2NhbCIsIm
lhdCI6MTYzNDA1MTkwNiwibmJmIjoxNjM0MDUxOTA2LCJleHAiOjE2MzQ2NTY3MDYsImRhdGEiOnsidXNlciI6e
yJpZCI6IjEifX19.a7y7HV8ig1A8kxs-L8LnJiYZIhOppXOOipQp7J3msXc

 

¿Cómo funciona el JWT?

Cuando un usuario se autentica manda sus datos de inicio de sesión al servidor, si la autenticación es correcta el servidor genera el JWT y lo manda como respuesta al cliente.

Generación JWT

 
Luego, en cada petición el cliente envía ese token y el servidor lo usa para saber qué usuario es y si esta autenticado y envía la respuesta requerida.

Petición con JWT

 

Estructura de un JWT

JWT es una cadena de caracteres que nos puede parecer aleatoria, sin embargo si usamos algún servicio como JWT.io para decodificarla, podremos comprobar que esa cadena tiene tres partes bien diferenciadas.

  • Cabecera Es un objeto JSON que define el tipo de token y el algoritmo de encriptacion usado.
  • Payload Contiene usualmente información del usuario además de adicionales que comprueban por ejemplo la expiración del token.
  • Firma Esta formado por la cabecera, el Payload y una contraseña, es una cadena encriptada y que sirve para verificar la validez del token.

 
En la siguiente imagen vemos una cadena token decodificada en sus tres partes:

Estructura JWT

 

JWT en WordPress

Para tener la funcionalidad de JWT en WordPress será necesario usar un plugin (al menos en las versiones actuales), el plugin que usaremos será JWT Authentication for WP REST API

WordPress JWT Auth plugin Rest API

 

Configuración del plugin

La configuración básica se encuentra en la página oficial del plugin, en la mayoría de los casos sólo será necesario configurar la constante JWT_AUTH_SECRET_KEY en el archivo wp-config.php

define('JWT_AUTH_SECRET_KEY', 'una-clave-secreta');

 

Generando el JWT para un usuario

Para este ejemplo usaremos la aplicación Postman, que es un software cliente para probar APIs de forma simple.

El plugin crea un nuevo namespace /jwt-auth/v1 , por lo tanto podemos usar la siguiente ruta para obtener un token:

/wp-json/jwt-auth/v1/token | POST

En la siguiente imagen vemos el uso de Postman para obtener un nuevo token:

Generación de nuevo token

 

El token obtenido se puede guardar en el Localstorage del navegador para sucesivas peticiones.

 

Creación de una nueva entrada en WordPress

Una vez obtenido el token podemos realizar peticiones al servidor incluyendo el token como parte de la petición, en nuestro ejemplo crearemos una nueva entrada.

Para la nueva entrada usamos la ruta de la Rest API de WordPress:

/wp-json/wp/v2/posts | POST

Primero agregamos el token como parte de las cabeceras

Uso del token en postman

 
Luego completamos los datos para la creación de la entrada

Creación de entrada WordPress desde Postman

 
Al final obtendremos una nueva entrada creada que podemos ver desde la administración de WordPress.

Creación de entrada resultado final

 

Conclusión

Como has podido comprobar puedes habilitar la funcionalidad de JWT en WordPress de forma simple a través de un plugin y de esta forma autenticar usuarios e integrar otros sistemas para hacer consultas y modificaciones en tu sitio web WordPress.

 

Suscríbete a DecodeCMS:  

 

La entrada Autenticación con JWT en la API de WordPress es un artículo reciente del sitio DecodeCMS.

Enregistrer un commentaire

0 Commentaires