guide身份验证

CKBox 与其他 CKEditor 云服务一样,使用 JWT 令牌进行身份验证和授权。 所有这些令牌都在您的应用程序端生成,并使用您可以在 CKEditor 生态系统仪表板 中获得的共享密钥进行签名。 CKBox 是一款商业产品,要使用它,您需要 获得许可证。 在 CKEditor 生态系统仪表板 中可以找到配置 tokenUrl 所需的访问凭据。

# 创建访问凭据

要获得创建令牌端点所需的访问凭据,请登录 CKEditor 生态系统仪表板,然后导航至“您的产品 » 云服务”。

CKBox subscription management.

# 网站环境

要获得访问凭据,首先,您必须选择环境。 环境是您的数据的独立空间,您可以创建任意数量的环境。 从环境列表中选择您要管理的环境或创建一个新的环境。

Environments list.

# 访问凭据

接下来,转到“访问凭据”选项卡,然后单击“创建新的访问密钥”按钮。

The “Create a new access key” button.

模态窗口将显示,并提示您为新访问密钥提供名称。 提供名称并单击“保存”按钮。

Access key name prompt.

新创建的访问密钥将显示在访问密钥列表中。

Access keys list with a hidden key.

新访问密钥的值将被隐藏。 要显示值,请单击“操作”列中的“显示”按钮。

Access keys list with visible key.

为了您的安全,访问密钥值将在几秒钟后消失。 您可以通过单击“显示”按钮再次显示它。 请确保将访问凭据保存在安全的地方。

在这里,您可以看到签署令牌端点创建的令牌所需的所有信息:环境 ID 和访问密钥。

Access keys list with visible key.

要详细了解环境的概念,请参阅 环境管理 文章。

# 令牌端点

准备好环境和访问凭据后,您可以创建一个 安全令牌端点。 此端点的作用是安全地授权应用程序的最终用户仅在应拥有对他们请求的内容或操作的访问权限时才能使用 CKEditor 云服务。

如果您想直接跳到代码,请查看 CKBox 代码示例

以下是各种语言的实现示例

我们强烈建议您使用 jwt.io 上列出的库来创建令牌。
如果您在其他服务器端语言中创建令牌端点时遇到问题,或者您对文档有任何其他建议,请与我们联系。

# 开发令牌端点

如果您只是入门,您可以使用开箱即用的开发令牌端点 URL,它不需要您进行任何编码。 开发令牌端点的 URL 可以通过几个简单的步骤轻松获取

从环境列表中选择您要管理的环境或创建一个新的环境。

Environments list.

选择环境后,按下“CKEditor 配置”选项卡的“开发令牌 URL”部分中的“生成”按钮。

Press the button to generate the development token URL.

开发令牌 URL 将显示在“开发令牌 URL”部分中。

CKEditor 5 Configuration with the development token URL.

开发令牌端点是一个特殊的端点,可以帮助您开始使用 CKEditor 云服务。 请注意,开发令牌端点返回带有 CKBox 管理员角色的令牌。 它提供对服务的无限制、完全访问权限,并在第一次使用后 30 天后过期。 您不应在生产环境中使用它。 任何知道此 URL 的人都将拥有对相关环境的完全访问权限。

# 令牌有效载荷

有效载荷属性

JWT 令牌有效载荷中必须包含以下属性

  • aud – 环境 ID,即在 CKEditor 生态系统仪表板 中创建的环境的标识符。
  • sub – 用户 ID,即为其颁发令牌的用户在系统中的唯一标识符。
  • iat – 令牌颁发时间的 timestamp。 请确保 iat 存在且包含以秒为单位的正确时间。 有些 JWT 实现默认情况下不包含它。 此外,系统时间可能无效,导致令牌出现奇怪问题(例如,Docker for Mac 时间漂移)。
  • auth – 定义用户角色的对象。 允许的值为 user(普通用户)和 admin(管理员用户)。

以下有效载荷示例将允许以管理员身份访问 CKBox

{
    "aud": "NQoFK1NLVelFWOBQtQ8A",
    "iat": 1511963669,
    "sub": "example-user-id",
    "auth": {
        "ckbox": {
            "role": "admin"
        }
    }
}

# 用户角色

CKBox 用户分为两组:普通用户和管理员。 普通用户可以使用应用程序的所有功能,允许进行文件管理(上传、重命名、删除等)。 管理员还可以访问 管理管理面板,该面板允许配置 CKBox 环境的各个方面,例如可用类别、允许的扩展名和响应式图像的质量。

用户角色是通过在令牌有效载荷的 auth.ckbox.role 字段中设置适当的值来定义的

  • 如果您希望用户成为管理员,请将 auth.ckbox.role 设置为 admin
    "auth": {
        "ckbox": {
            "role": "admin"
        }
    }
    
  • 对于普通用户,auth.ckbox.role 应设置为 user
    "auth": {
        "ckbox": {
            "role": "user"
        }
    }
    

高级 权限 功能使集成者能够将权限分配给普通用户。 它允许更大地控制访问和资产管理权限。