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

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

20/04/2025, by Ivan

Аутентификация для операций CRUD с JSON:API

При взаимодействии с JSON:API можно использовать такие инструменты, как Postman или cURL для отправки запросов. По умолчанию такие запросы обрабатываются от имени пользователя «аноним», поскольку эти инструменты не управляют сессией и не выполняют аутентификацию. В результате доступ к определённым ресурсам может быть ограничен в соответствии с правами, установленными для анонимных пользователей на вашем сайте Drupal.

Однако если вы хотите выполнять создание, изменение или удаление (CRUD) объектов через JSON:API, полагаться только на анонимный доступ недостаточно. Эти операции требуют аутентифицированного доступа. Drupal поддерживает различные методы аутентификации, которые можно активировать с помощью модулей ядра и дополнительных модулей.

Один из самых распространённых способов — HTTP Basic Authentication, который входит в состав ядра Drupal. Для более сложных сценариев можно использовать модуль Drupal REST & JSON API Authentication, который предлагает расширенные возможности настройки безопасности и подстройку под нужды вашего приложения.

Шаги для выполнения аутентифицированного запроса

  1. Убедитесь, что все операции разрешены
    json-api
  2. Включите модуль HTTP Basic Authentication
    Enable module
  3. Создайте роль для API-пользователя
    API user
  4. Назначьте необходимые разрешения для этой роли. Перейдите по адресу: /admin/people/permissions/api_user
  5. Для примера — дайте разрешение *Article*: Create new content
  6. Создайте пользователя с ролью API User: /admin/people/create
    Roles
  7. Настройте авторизацию в Postman, используя учётные данные этого пользователя
    postman
  8. Добавьте заголовок Content-Type: application/vnd.api+json
    Postman headers
  9. Обновите тело запроса:
    {
      "data": {
        "type": "node--article",
        "attributes": {
          "title": "This page is created trough JSON:API",
          "body": {
            "value": "some body text",
            "format": "plain_text"
          }
        }
      }
    }
  10. Отправьте запрос и проверьте ответ. Если статус 201, значит вы успешно выполнили аутентифицированный запрос к JSON:API и создали узел типа article
    content

JSON:API — это мощная и стандартизированная спецификация, которая упрощает создание API в Drupal. Впервые представленный как модуль ядра в Drupal 8 и выше, он позволяет разработчикам быстро и без лишней настройки получить доступ к контенту через предсказуемый и структурированный API.

Достаточно включить модуль JSON:API, чтобы получить моментальный доступ к данным сайта через согласованный интерфейс. Это удобно как для frontend-приложений, так и для интеграций или построения decoupled-архитектуры.

Чтобы изучить продвинутые функции, включая пагинацию, фильтрацию, сортировку, загрузку файлов и многое другое — ознакомьтесь с официальной документацией модуля JSON:API на Drupal.org.