指南请求签名

# 请求签名概述

最安全的解决方案是只使用 HTTPS 通信,但可能存在系统和 CKEditor 云服务之间无法使用 HTTPS 通信,只能使用 HTTP 通信的情况。因此,为了确保两种情况的安全,CKEditor 云服务使用 HMAC 算法来保护系统之间的连接。

# 算法

从 CKEditor 云服务发送或接收的每个请求都应包含以下标题

  • X-CS-Timestamp
  • X-CS-Signature

X-CS-Timestamp 值应为自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数,例如,在 node/JavaScript 中由 Date.now() 返回。

签名使用 SHA-256 算法生成,使用一个 API 密钥 作为密钥,并基于以下数据

  • HTTP 方法 – GETPOSTPUTDELETE
  • URL – URL 的路径。
    对于 https://docs.cke-cs.com/api/v5/docs?page=1,这只是 /api/v5/docs?page=1
  • 时间戳 – 与 X-CS-Timestamp 标题中的值相同。
  • 主体 – POSTPUT 的主体中的字符串,或其他方法的空字符串。

要生成 Webhooks 请求签名,您需要使用选择为“用于 Webhooks”的 API 密钥。

如果没有选择 API 密钥,则将使用“API 配置”选项卡中的 API 密钥

以上数据应以以下方式组合成一个字符串

  • 将 HTTP 方法名称转换为大写字符串。
  • 添加 URL(路径名称)。
  • 添加时间戳。
  • 添加转换为字符串的主体。

# 示例

查看 Node.js 中请求签名实现的示例
查看 ASP.NET 中请求签名实现的示例
查看 Java 中请求签名实现的示例
查看 PHP 中请求签名实现的示例
查看 Python 3 中请求签名实现的示例