logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

滚动

设置基于访问令牌 / OAuth 的身份验证

02/09/2025, by Ivan

OAuth(开放授权)是一种基于令牌的身份验证和授权协议的开放标准,可用于提供单点登录(SSO)。OAuth 允许第三方服务(例如 Facebook 等)在不暴露用户密码的情况下使用最终用户帐户的特定信息。它作为最终用户的中介,向服务提供一个访问令牌,从而授权共享特定的帐户信息。

此 Drupal API 身份验证方法使用 OAuth 2.0 协议获取安全访问令牌。该令牌用于验证对您的 Drupal 站点 API 的访问。OAuth 方法提供高度加密和安全的访问令牌,确保您的 Drupal API 得到良好保护。它被认为是防止对 Drupal REST 或 JSONAPI 端点未经授权访问的最安全方法之一。该模块兼容 Drupal 7、Drupal 8、Drupal 9、Drupal 10 和 Drupal 11。

 下载  

设置视频:

 Drupal REST API OAuth/Access Token Authentication Youtube 视频

在 OAuth 2.0 中,涉及以下三方:

  • 用户:拥有通过 API 访问的数据,并希望允许应用程序访问这些数据。
  • 应用程序:希望代表用户通过 API 访问数据。
  • API 端点:控制并启用对用户数据的访问。

API 仅在收到来自应用程序的有效访问令牌时才授予访问权限。应用程序如何获取访问令牌取决于所使用的 OAuth 方案。

先决条件:下载和安装:

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

    启用模块

配置 OAuth/访问令牌 API 身份验证的步骤:

  • 为了更好地理解,我们将以向 Drupal 的获取用户信息 API 添加 OAuth/访问令牌身份验证为例。
  • 请注意,Drupal 的获取用户信息 API 用于检索用户信息。

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

  • 第一步是启用 API,并分配该 API 上允许的方法和操作。您可以使用 REST UI 模块进行此操作,也可以直接修改配置。
  • 要使用 REST UI 模块启用 API,请点击 REST UI 模块的 Configure 按钮(如下图所示)。

    REST UI

  • 根据我们的示例,我们希望启用 /user/{user} API,该 API 位于 Content 部分。使用其前面的 Enable 选项启用此 API。

    REST API

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

    REST API

设置 OAuth/访问令牌 API 身份验证:

  • 在此步骤中,我们将设置 OAuth/访问令牌作为 API 身份验证方法。请转到 REST API Authentication 模块的 API Authentication 选项卡 (/admin/config/people/rest_api_authentication/auth_settings)
    • 选择 启用身份验证 复选框并点击 保存设置 按钮。
    • 在保存按钮下方选择 OAuth/Access Token 单选按钮。
    • 现在点击 生成新的客户端 ID 和密钥 按钮。
  • 请妥善保存 Client ID 和 Secret,因为在之后验证 Get User Info API 时将会用到。

    生成新的 Client ID

授予 Drupal 角色查看用户信息的权限:

  • 如有需要,您也可以授予非管理员的 Drupal 角色查看用户信息的权限。您可以在 Drupal 站点的权限部分 (/admin/people/permissions) 中将 Drupal 角色分配给 查看用户信息 权限。

    REST API

就是这样!!!

现在,让我们尝试通过 API 调用使用 OAuth/Access Token 进行身份验证来获取用户信息。

示例:

  • 首先,我们需要进行一次 API 调用以获取访问令牌。然后我们将使用该令牌来验证 Drupal API,从而获取用户信息。
  • miniOrange API Authentication 模块支持两种授权类型,可用于获取访问令牌: