请求签名
# 请求签名概述
最安全的解决方案是只使用 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 方法 –
GET
、POST
、PUT
、DELETE
。 - URL – URL 的路径。
对于https://docs.cke-cs.com/api/v5/docs?page=1
,这只是/api/v5/docs?page=1
。 - 时间戳 – 与
X-CS-Timestamp
标题中的值相同。 - 主体 –
POST
和PUT
的主体中的字符串,或其他方法的空字符串。
要生成 Webhooks 请求签名,您需要使用选择为“用于 Webhooks”的 API 密钥。
如果没有选择 API 密钥,则将使用“API 配置”选项卡中的 API 密钥。
以上数据应以以下方式组合成一个字符串
- 将 HTTP 方法名称转换为大写字符串。
- 添加 URL(路径名称)。
- 添加时间戳。
- 添加转换为字符串的主体。
# 示例
查看 Node.js 中请求签名实现的示例。
查看 ASP.NET 中请求签名实现的示例。
查看 Java 中请求签名实现的示例。
查看 PHP 中请求签名实现的示例。
查看 Python 3 中请求签名实现的示例。