• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
  • Acceder
    • Mis cursos
    • Mi Cuenta
    • Acceder
Inicio / Tutoriales / Plugins / Autenticación con JWT en la API de WordPress

Autenticación con JWT en la API de WordPress

Autenticación con JWT en la API de WordPress

[ 13 octubre 2021 ] [ Autor: Jhon Marreros Guzmán ][ Plugins - Avanzado] [ ]

seguridad

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

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:  

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Manejo de Sesiones en WordPressManejo de Sesiones en WordPress
  • Agregar endpoints a la API REST de WordPressAgregar endpoints a la API REST de WordPress
  • REST API WoocommerceCómo usar la REST API de WooCommerce
  • REST API en WordPressCómo usar la REST API de WordPress
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (1 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. Giovanny Rubio

    24 mayo, 2022

    Hola. Gracias por este gran post.
    Te quería preguntar si este plugin me sirve para acceder a un WordPress que tenemos hecho, desde un sitio web diferente por medio de una autenticación de google.
    Mil gracias.

    • Jhon Marreros Guzmán

      25 mayo, 2022

      Hola, en la primera parte para la autenticación por JWT siempre necesitarás un usuario registrado de WordPress. Cuando se usa autenticación por Google los usuarios también deberían existir en WordPress. Revisa plugins de autenticación con Google, posiblemente te ayuden con esto. Espero abordar este caso de autenticaciones con servicios externos en futuros tutoriales.

Para escribir código envolver con: <pre class="language-xxx"><code> </code></pre> ,reemplaza las xxx (php, css, html)

*

* Gravatar habilitado

Barra lateral principal

Presentación

Curso Decodifica WordPress

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
¿Quieres agregar código a WordPress? Revisa las diferentes opciones que tienes.Ver más

Jooble
Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

accesibilidad css dashboard editor error funcionalidad herramientas imagen js librería mejoras optimización seguridad social woocommerce

Populares

Enviar datos desde PHP a Javascript en WordPress

Código para procesamiento por lotes en WordPress

Sincronizar WooCommerce y Google Sheets

Tabla de Contenidos en WordPress sin plugins

© logo decode pie
Política de Privacidad | Política de devoluciones
Copyrigth 2023 Todos los derechos reservados