DRM-X 6.0 鸽子和橄榄枝标志DRM-X 6.0文档
◎ 简体中文

Node.js + Express 视频 DRM 集成

安装 Express SDK,接入现有登录系统,并通过每次请求执行的回调返回允许访问的 Content ID。

查看 Markdown在线示例更新于 2026-09-25
下载此平台集成包

包含预览版 SDK、应用示例和源码。请保留解压后的目录结构。

所有平台与完整集成包 · 了解集成流程

需要自定义的三个位置#

  1. 配置examples/sdk/node-express/server.mjs

    设置 publicOrigin、instanceId 和环境凭据。

  2. 识别用户

    您现有的会话/登录中间件

    填充 req.user,并提供 identity: req => req.user?.id。

  3. 授权authorize(userId, videoId)

    查询此视频并检查当前权限;返回映射结果或 null。

1. 安装并播放一个视频#

cd examples/sdk/node-express
npm install
# Set DRMX_SITE_ID, DRMX_SITE_KEY and DRMX_ACCESS_KEY on the server.
# For localhost only, set DRMX_LOCAL_DEMO=1.
node server.mjs

使用 Node.js 24+ 和 Express 5。在 server.mjs 的 authorize 中替换 your-published-content-id。打开 http://127.0.0.1:8109/drmx/videos/1。示例会安装随附的 @drmx/server 和 @drmx/express 包。

2. 接入实际权限检查#

在登录中间件之后挂载路由。替换演示回调;下方 customerCatalog 代表您自己的数据库或服务:

identity: req => req.user?.id,
authorize: async (userId, videoId) => {
  const video = await customerCatalog.findAuthorizedVideo(userId, videoId);
  if (!video) return null;
  return { enabled: true, contentId: video.drmxContentId,
           contentType: 'vod', title: video.title,
           policy: 'multi-tier-standard' };
}

在该查询中检查购买或会员资格、内容可用性、权限到期和撤销状态。页面请求和每次新会话都会执行回调。设置准确的公共 HTTPS 源,并禁用本地演示中间件。

3. 打开或嵌入播放器#

路由提供 GET /drmx/videos/:id 和 POST /drmx/videos/:id/session。先使用随附页面;构建自有页面时,复用其脚本标签和 Web Component,并在会话 URL 中传入允许访问的 Content ID 和同一个视频 ID。

上线前检查#

  • 以有权限的用户登录,并在支持的浏览器中播放已发布的视频。
  • 测试未登录和未付费用户,再测试权限被撤销或到期的情况。新的会话请求必须被拒绝。
  • 尝试修改浏览器中的 Content ID 或网站视频 ID。服务器必须检查新的选择。
  • 设置准确的公共 HTTPS 源,保留框架的会话/CSRF 保护,并禁用演示身份代码。

已有会话和 DRM 许可证具有各自的有效期。新请求会检查权限变更,但不会清除已经签发的许可证。