Дополнительные типы блоков (EBT) — новый опыт конструктора страниц❗

Дополнительные типы блоков (EBT) — стилизованные, настраиваемые типы блоков: слайдшоу, вкладки, карточки, аккордеоны и многие другие. Встроенные настройки для фона, DOM Box, плагины Javascript.

Демо EBT модули Скачать EBT модули

❗Дополнительные типы параграфов (EPT) — новый опыт работы с параграфами

Дополнительные типы параграфов (EPT) — набор модулей, основанный на аналогичных параграфах.

Демо EPT модули Скачать EPT модули

Scroll
20/04/2025, by Ivan

Модуль Drupal API Authentication работает путем отправки JWT-токена вместе с API-запросами для аутентификации. JWT (JSON Web Token) — это открытый стандарт, позволяющий безопасно представлять идентификацию пользователя при взаимодействии двух сторон.

На первом этапе используются имя пользователя и пароль сайта Drupal для получения JWT. После успешной проверки учетных данных модуль создает подписанный токен, который затем возвращается клиентскому приложению.

Получив JWT, вы можете использовать его для выполнения операций в Drupal до истечения срока действия токена. Модуль предоставит доступ только в случае получения действительного JWT от клиента.

JWT может быть подписан и проверен с использованием алгоритмов HSA или RSA.

Рассмотрим пример использования JWT для аутентификации API в Drupal.

Скачать

Видео-инструкция:

JWT Auth Youtube

Предварительные требования:

  • Скачайте и установите модуль Drupal REST & JSON API Authentication.
  • REST UI — модуль с интерфейсом для настройки REST API.
  • Активируйте модули:
    • REST UI
    • RESTful Web Services
    • Serialization
    Enable modules

Настройка JWT-аутентификации:

  • В примере реализуем создание базовой страницы в Drupal через API /node.

Включение API и методов:

  • Через модуль REST UI откройте «Configure»: Configure REST UI
  • Включите /node API: Enable Node
  • Настройки:
    • Метод: POST
    • Формат: json
    • Аутентификация: rest_api_authentication
    Select Configuration

Настройка JWT:

  • Перейдите в /admin/config/people/rest_api_authentication/auth_settings.
  • Включите «Enable Authentication», выберите метод JWT.
  • Для использования внешнего токена можно указать:
    • Имя атрибута, содержащего имя пользователя
    • JWKS URI для валидации токена
    JWT options

Назначение прав для ролей:

  • Перейдите в /admin/people/permissions и отметьте «Basic page: Create new content» для нужной роли: Permission

Примеры:

  • Сначала получим JWT, отправив POST-запрос с base64-кодированными именем пользователя и паролем:

Запрос: POST <ваш_сайт>/rest_api/id_token

Заголовки:

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

Curl:

curl -X POST 'https://example.com/rest_api/id_token' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic base64(username:password)'

Postman JWT Request

Postman JWT Response

Аутентификация с помощью JWT:

JWT добавляется как Bearer Token в заголовке:

POST /node?_format=json
Authorization: Bearer <JWT>
Accept: application/json
Content-Type: application/json
{
  "type": [{"target_id": "page"}],
  "title": [{"value": "Drupal Rest API Authentication"}],
  "body": [{"value": "Page created using the JWT Authentication."}]
}

Postman request headers

Postman response

Created page

Ошибки:

Ошибка Описание
INVALID_CREDENTIALS Неверное имя пользователя или пароль
MISSING_AUTHORIZATION_HEADER Отсутствует заголовок Authorization
INVALID_AUTHORIZATION_HEADER_TOKEN_TYPE Заголовок Authorization должен быть типа Bearer
TOKEN_EXPIRED Срок действия токена истек
USER_INFORMATION_NOT_FOUND Не удалось получить информацию о пользователе
INVALID_SIGNATURE Подпись токена недействительна

Источник: Drupal Documentation