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

Настройка базовой аутентификации с помощью модуля аутентификации REST API

20/04/2025, by Ivan

Базовая аутентификация (Basic Authentication) — это очень простой и прямолинейный метод аутентификации. Клиент отправляет HTTP-запросы с заголовком Authorization, который содержит закодированные в base64 имя пользователя и пароль от вашего сайта на Drupal.

При базовой аутентификации модуль miniOrange API authentication сначала аутентифицирует пользователя по его имени и паролю в Drupal. Только после успешной аутентификации пользователь сможет выполнить операцию. Этот модуль совместим с Drupal 7, 8, 9, 10 и 11.

  Скачать  

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

Предварительные требования: загрузка и установка:

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

    Drupal REST API authentication

Шаги по настройке базовой аутентификации в Drupal:

  • В качестве примера рассмотрим добавление базовой аутентификации для получения узла (node) через REST API.
  • Примечание: API /node/{node} используется для получения информации об узле в Drupal.

Включите API, назначьте методы и операции:

  • Сначала включите нужный API и назначьте разрешённые методы. Это можно сделать через модуль REST UI или изменить конфигурацию вручную.
  • Для активации через UI нажмите «Configure» у REST UI модуля:

    Rest UI

  • В разделе Content найдите API /node/{node} и включите его:

    REst GET

  • Настройте следующее:
    • Метод: GET
    • Формат: json
    • Провайдер аутентификации: rest_api_authentication

    Нажмите «Save Configuration» для сохранения.

    Rest api basic auth

Шаги по активации базовой аутентификации:

  • Перейдите в настройки модуля REST API Authentication: /admin/config/people/rest_api_authentication/auth_settings
    • Отметьте «Enable Authentication» и нажмите «Save Settings».
    • Ниже выберите «Basic Authentication» и нажмите «Select method».

Готово!
Теперь можно сделать API-запрос с использованием базовой аутентификации.

Пример:

  • Для получения информации об узле выполните GET-запрос с заголовком Authorization, содержащим имя пользователя и пароль в формате base64.

    Запрос: GET <ваш_домен>/node/{node}?_format=json

    Заголовки:
    Authorization: Basic base64(username:password)
    Accept: application/json
    Content-Type: application/json

    CURL-запрос:
    curl --location --request GET 'https://example.com/node/1?_format=json' \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Basic base64encoded_username:password'

REST API auth

Ответ: успешный запрос вернёт JSON с данными об узле:

Basic Auth

Описание ошибок и возможные решения:

Ошибка Описание
MISSING_AUTHORIZATION_HEADER Отсутствует заголовок Authorization.
{"status": "error", "error": "MISSING_AUTHORIZATION_HEADER", "error_description": "Authorization header not received."}
INVALID_AUTHORIZATION_HEADER_TOKEN_TYPE Заголовок Authorization указан в неверном формате.
{"status": "error", "error": "INVALID_AUTHORIZATION_HEADER_TOKEN_TYPE", "error_description": "Authorization header must be the type of Basic Authentication."}
USER_NAME_MISSING Не указан логин.
{"status": "error", "error": "USER_NAME_MISSING", "error_description": "Username Not Found"}
INVALID_CREDENTIALS Неверное имя пользователя или пароль.
{"status": "error", "error": "INVALID_CREDENTIALS", "error_description": "Invalid username or password."}