Node.js + Express 비디오 DRM 통합
Express SDK를 설치하고 기존 로그인 시스템을 연결한 뒤, 요청 시 실행되는 콜백 하나에서 권한이 확인된 Content ID를 반환하세요.
미리보기 SDK, 응용 예제 및 소스. 추출된 폴더 레이아웃을 유지하십시오.
직접 수정할 세 위치#
- 설정
examples/sdk/node-express/server.mjspublicOrigin, 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.mjsNode.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를 재사용하고, 권한이 확인된 Content ID와 동일한 동영상 ID를 세션 URL에 전달하세요.
운영 배포 전 확인#
- 접근이 허용된 사용자로 로그인하여 지원되는 브라우저에서 게시된 동영상을 재생합니다.
- 로그아웃 사용자와 미결제 사용자를 테스트하고 권한 철회 및 만료도 확인합니다. 새 세션 요청은 거부되어야 합니다.
- 브라우저의 Content ID 또는 사이트 동영상 ID를 변경해 봅니다. 서버는 새 선택 항목을 검사해야 합니다.
- 정확한 공개 HTTPS 출처를 설정하고 프레임워크의 세션 및 CSRF 보호를 유지하며 데모 신원 코드를 비활성화합니다.
기존 세션과 DRM 라이선스에는 자체 유효기간이 있습니다. 새 요청에서는 권한 변경을 검사하지만 이미 발급된 라이선스를 삭제하지는 않습니다.
DRM-X 6.0