• 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

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

seguridad

Suscríbete a DecodeCMS:  

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.

  2. Dardo Schuster

    1 diciembre, 2023

    Como puedo hacer lo mismo con una tabla mía para agregar modificar y eliminar datos , el post me agrega un registro pero los datos están vacíos

    • Jhon Marreros Guzmán

      7 diciembre, 2023

      Hola, te sugiero revisar: https://decodecms.com/crud-en-wordpress-sin-plugins/

  3. Emiliano

    9 abril, 2024

    Hola! He configurado todo como decis en los pasos. Pero cuando hago la peticion me da este error:

    {
    «code»: «jwt_auth_bad_config»,
    «message»: «JWT is not configured properly, please contact the admin»,
    «data»: {
    «status»: 403
    }
    }

    Hasta he confiugarado .htacces tal como me lo dice la doc del plugin, pero no funciona

    • Jhon Marreros Guzmán

      11 abril, 2024

      Hola, si te complicas con esto, prueba usar la autenticación por defecto de WordPress (Basic), revisa este artículo de guia: https://decodecms.com/crear-entradas-con-la-rest-api-de-wordpress-desde-un-sitio-web-remoto/

  4. Maite

    21 abril, 2025

    Hola, excelente material, una pregunta: este pluging se usa gratis opciones básicas o solo es de prueba? porque lo instale hace unas dos semanas y ahora que voy a demostrar su efectividad no funciona correctamente, lo desactive, lo borre, y lo volvi a instalar.

    • Jhon Marreros Guzmán

      3 mayo, 2025

      Hola, el plugin tiene una versión pro, pero para lo que hacemos en el artículo debería ser suficiente la versión gratuita

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

*

* Gravatar habilitado

Barra lateral principal

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

Omnisend
Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

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

Populares

Página estática y entradas recientes en el inicio de WordPress

Agregar login y logout en un menú de WordPress

Shortcode para búsqueda en tabla personalizada en WordPress

Búsqueda en tabla personalizada en WordPress

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