logo

Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll
02/09/2025, by Ivan

El módulo de Autenticación API de Drupal funciona enviando un token JWT junto con tus solicitudes API para autenticación. Este módulo utiliza JSON Web Token (JWT), un estándar abierto para representar de forma segura la identidad del usuario durante interacciones entre dos partes.

En este paso, esencialmente se utiliza el nombre de usuario y la contraseña de tu sitio Drupal para obtener primero un token JWT. Una vez verificados los datos, el módulo de Autenticación API REST de Drupal creará un JSON Web Token firmado. Luego, la API devolverá ese token a la aplicación cliente.

Una vez recibido el token JWT, puedes usarlo para realizar operaciones en Drupal hasta que el token expire. El módulo sólo otorgará acceso cuando reciba un JWT válido desde la aplicación.

JWT puede firmarse y validarse usando dos algoritmos: HSA y RSA.

Veamos cómo usar un token JWT para autenticación en la API de Drupal.

Descargar

Video de Configuración:

Video de autenticación JWT para la API REST de Drupal

Requisitos Previos: Descarga e Instalación:

  • Descarga e instala el módulo Drupal REST & JSON API Authentication.
  • REST UI: Este módulo proporciona una interfaz para configurar el módulo REST.
  • Activa los siguientes módulos de servicios web desde la sección Extender (/admin/modules):
    • REST UI
    • RESTful Web Services
    • Serialization

    Activar módulos

Pasos para Configurar Autenticación JWT:

  • Como ejemplo, vamos a agregar autenticación JWT para crear una página básica en Drupal usando la API /node.

Habilita la API y asigna métodos/operaciones:

  • Primero, habilita la API y configura los métodos permitidos. Puedes hacerlo desde el módulo REST UI o editando la configuración directamente.
  • Haz clic en el botón Configurar del módulo REST UI.
  • Configuración REST UI

  • Habilita la API /node bajo la sección Contenido.
  • Habilitar nodo

  • Configura lo siguiente:
    • Método: POST
    • Formato: json
    • Proveedor de autenticación: rest_api_authentication

    Configuración de recurso

Configurar Autenticación JWT:

  • Ve a la pestaña API Authentication del módulo (/admin/config/people/rest_api_authentication/auth_settings).
  • Activa la casilla Enable Authentication y guarda.
  • Selecciona la opción JWT.
  • Para usar tokens JWT externos:
    • Introduce el nombre del atributo donde se recibe el nombre de usuario (Username Attribute).
    • También puedes ingresar una URI JWKS para validar el token.

    JWT authentication

Otorgar Permisos para Crear una Página:

  • Asigna a los roles Drupal el permiso Página básica: Crear nuevo contenido en /admin/people/permissions.
  • Permisos

¡Eso es todo! Ahora puedes crear páginas básicas vía API usando autenticación JWT.

Ejemplos:

  • Primero, haz una solicitud para obtener el token JWT usando usuario/contraseña codificados en base64:

Solicitud: POST <base_url>/rest_api/id_token

Encabezados:
Authorization: Basic base64(username:password)
Accept: application/json

curl --location --request POST '<base_url>/rest_api/id_token' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic base64(username:password)'

Solicitud Postman

Respuesta exitosa:

Token JWT Postman

Usar el Token JWT para Autenticar la API:

Solicitud: POST <base_url>/node?_format=json

Encabezado: Authorization: Bearer <token_jwt>
Accept: application/json

Cuerpo:

{
  "type": [{"target_id": "page"}],
  "title": [{"value": "Autenticación API con JWT"}],
  "body": [{"value": "Página creada usando autenticación JWT."}]
}

Solicitud POST JWT

Respuesta Postman

Página creada

Respuestas de error comunes:

ErrorDescripción
INVALID_CREDENTIALSUsuario o contraseña incorrectos.
MISSING_AUTHORIZATION_HEADERFalta el encabezado Authorization.
INVALID_AUTHORIZATION_HEADER_TOKEN_TYPETipo de token no válido (debe ser Bearer).
TOKEN_EXPIREDEl token JWT ha expirado.
USER_INFORMATION_NOT_FOUNDNo se pudo obtener la información del usuario.
INVALID_SIGNATURELa firma del token no es válida.

Artículo traducido de Documentación de Drupal.