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

使用 REST API Authentication 模块设置基本身份验证

03/09/2025, by Ivan

基本身份验证是一种非常简单直接的身份验证方法。客户端发送带有 Authorization 头的 HTTP 请求,该头包含 Drupal 站点的 base64 编码用户名和密码。

在基本身份验证中,miniOrange API Authentication 模块会首先根据用户的 Drupal 用户名和密码进行身份验证。如果用户通过身份验证,则该用户才可以执行该操作。该模块兼容 Drupal 7、Drupal 8、Drupal 9、Drupal 10 和 Drupal 11。
 

  下载  

设置视频:

先决条件:下载和安装:

  • 下载并安装 Drupal REST & JSON API Authentication 模块。
  • REST UI:该模块为你提供一个用于配置 REST 模块的用户界面。
  • 在 Drupal 站点的扩展(/admin/modules)部分启用以下 Web 服务模块:
    • JSON: API
    • REST UI
    • RESTful Web Services
    • Serialization

    Drupal REST API authentication

在 Drupal 中配置基本身份验证方法的步骤:

  • 为了更好地理解,我们将以使用 REST API 为 Drupal 获取节点时添加基本身份验证为例。
  • 请注意,Drupal 的 /node/{node} API 用于检索有关 Drupal 节点的信息。

启用 API,分配方法和操作如下:

  • 第一步是启用 API,并分配该 API 上允许的方法和操作。这可以使用 REST UI 模块完成,或者你可以直接修改配置。
  • 要使用 REST UI 模块启用 API,请点击 REST UI 模块的配置按钮(如下所示)

    Rest UI

  • 考虑到我们的示例,我们希望启用 /node/{node} API,它位于 Content 部分。使用前面的 Enable 选项启用此 API。

    REst GET

  • 现在,因为我们的目标是检索节点信息,请选择以下配置:
    • 方法:GET
    • 格式:json
    • 身份验证提供程序:rest_api_authentication.
  • 这将允许 miniOrange REST API Authentication 模块验证你的 API。点击 保存配置 按钮以继续。

    Rest api basic auth

启用基本身份验证的步骤:

  • 在此步骤中,我们将设置 基本身份验证 作为 API Authentication 方法。为此,请导航到 REST API Authentication 模块的 API Authentication 选项卡 (/admin/config/people/rest_api_authentication/auth_settings)
    • 选择 启用身份验证 复选框,然后点击 保存 设置。
    • 保存设置 按钮下方选择 Basic Authentication,然后点击 选择方法 按钮。

就是这样!!!
现在让我们尝试通过使用基本身份验证的 API 调用来获取节点信息。

示例:

  • 要在 Drupal 中获取节点信息,你需要发出一个 GET 请求,并附带用户的 Drupal 用户名和密码。用户名和密码的值必须是 base64 编码格式。你可以参考以下格式来发起调用。

    请求: GET <your_drupal_base_url> /node/{node}?_format=json
    请求头:
          Authorization: Basic base64encoded <username:password>
          Accept: application/json
          Content-Type: application/json

    CURL 请求格式-
    curl --location --request GET 'drupal_base_url/node/1?_format=json' \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Basic base64encoded <username:password'>

  • 你还可以参考下面添加的 Postman 请求示例图像:

    REST API auth

  • 成功的响应会返回你创建的节点信息。(请参考下图)

Basic Auth

  • 如果你收到任何错误响应,可以参考下表中的错误描述和可能的解决方案。

错误

描述

MISSING_AUTHORIZATION_HEADER

当你在 API 请求中未发送 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

当模块无法在 API 调用中找到用户名时,你将收到此错误。

示例:
{
  "status": "error",
  "error": "USER_NAME_MISSING",
  "error_description": "Username Not Found"
}

INVALID_CREDENTIALS

当用户名或密码不正确时,你将收到此错误。

示例:
{
  "status": "error",
  "error": "INVALID_CREDENTIALS",
  "error_description": "Invalid username or password."
}