Node.js + Express 视频 DRM 集成
安装 Express SDK,接入现有登录系统,并通过每次请求执行的回调返回允许访问的 Content ID。
下载此平台集成包
包含预览版 SDK、应用示例和源码。请保留解压后的目录结构。
需要自定义的三个位置#
- 配置
examples/sdk/node-express/server.mjs设置 publicOrigin、instanceId 和环境凭据。
- 识别用户
您现有的会话/登录中间件
填充 req.user,并提供 identity: req => req.user?.id。
- 授权
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 许可证具有各自的有效期。新请求会检查权限变更,但不会清除已经签发的许可证。
DRM-X 6.0