# Kajabi、Thinkific 与 Teachable

先将可信的学员登录身份与服务器端报名权限检查连接，再打开受保护视频。

播放授权的流程

您的后端决定谁可以观看。DRM-X 提供播放授权，播放器使用该授权请求 DRM 许可证。

- 01**观看用户**

登录您的服务并请求播放视频。

- 02**您的后端**

检查用户的购买记录、订阅状态或其他观看权限。

- 03**DRM-X**

应用所选播放规则，返回播放配置和授权信息。

- 04**播放器**

使用返回的授权信息，请求播放所需的 DRM 许可证。

您的后端判断用户是否有权观看，DRM-X 执行签名授权中的播放策略。加密媒体与 DRM 许可证通过各自的服务传送给播放器。

## 先验证学员身份[#](#identity)



学校 API key 代表学校管理员，并不能证明当前访问页面的是哪位学员。不要把 iframe 参数、JavaScript 变量或未签名表单中的用户 ID 或邮箱当作身份凭据。



此预览版本使用客户自行管理的登录门户。门户验证学员身份后，为集成服务签发最长有效期为 60 秒的 RS256 JWT，包含 issuer、audience、subject、签发时间、到期时间、唯一 jti 和所请求的 resource。将它与已注册的 portal ID 一起 POST 到 /sso。



在服务器上配置门户的 issuer 和 HTTPS JWKS 地址。在 identities 中，将每个门户 subject 映射到已核实的平台用户 ID 和允许的资源列表。只有一次性 JWT 验证通过后，才会使用该映射。随后，每次新播放请求都会重新检查平台 API。



[下载第三方平台集成源码](https://drm-x6-cdn.1aicloud.com/drmx-frameworks-1.3.0-preview.2-f4ee10f26cdf.zip)





## 平台权限检查[#](#providers)



Thinkific：配置 apiKey 和 subdomain，将受保护资源映射到对应课程 ID。适配器检查用户、课程、启用时间、到期状态和免费试用状态。仅有免费预览权限的报名记录不会解锁完整受保护课时。



Kajabi：配置服务器端 accessToken，并将资源映射到 offer ID。适配器读取联系人当前已获授予的 offers。请将门户账号映射到已核实的 Kajabi contact ID。访问令牌更新和所选套餐是否提供 API，仍需在客户部署环境中配置和确认。



Teachable：配置 apiKey，并将受保护资源映射到课程 ID。预览适配器读取课程的有效报名列表。启用前应根据您学校的实际 API 验证响应格式和分页方式；无法识别的响应会被拒绝。



课程报名权限和 offer 访问权限不会自动实现课时逐步开放、班级规则或自定义退款策略。公开相应资源前，请在后端接入这些规则；否则应保持这些资源禁用。





## 托管学校环境验收[#](#acceptance)



这些适配器属于集成预览，并非应用商店产品或已经验证的一键安装插件。目前没有可用于端到端测试的 Kajabi、Thinkific 或 Teachable 授权学校环境。除非替换为同等可信的平台登录流程，否则必须使用经过身份验证的门户。



请验证付费学员、其他账号、到期或撤销报名、未来启用日期、令牌重放、API 错误和篡改 Content ID 等场景。受保护视频应在集成服务自己的来源域名上播放；若托管课程编辑器无法运行所需脚本，请使用打开独立页面的链接。



[Thinkific API 文档](https://developers.thinkific.com/api/api-documentation/)



[Kajabi 联系人 offers API](https://help.kajabi.com/api-reference/contacts/list-contacts-offers)



[Teachable 有效报名 API](https://docs.teachable.com/reference/showcourseenrollments)

<!-- Canonical: https://docs.drm-x.com/zh-Hans/integrations/hosted-learning-platforms -->
<!-- Language: zh-Hans -->
