DRM-X 6.0 logo bồ câu và nhánh ô liuDRM-X 6.0Tài liệu
◎ Tiếng Việt

Video được bảo vệ với Django

Dùng xác thực Django và callback kiểm tra quyền riêng. Gói DRM-X không tạo bảng video hoặc bảng cấp quyền truy cập.

Xem MarkdownVí dụ chạy trực tiếpCập nhật 2026-09-25
Tải bộ tích hợp nền tảng này

SDK bản xem trước, ví dụ ứng dụng và mã nguồn. Giữ cấu trúc thư mục sau giải nén.

Mọi nền tảng và bộ đầy đủ · Hiểu quy trình tích hợp

Ba vị trí bạn cần tùy chỉnh#

  1. Cấu hìnhsettings.py

    Thêm drmx và cấu hình DRMX, bao gồm AUTHORIZE.

  2. Cấp quyền

    Ứng dụng của bạn: drmx_access.py

    Triển khai authorize(user, video_id) bằng hệ thống hiện có.

  3. Định tuyếnurls.py

    Thêm drmx.urls; dùng lại middleware đăng nhập và CSRF thông thường.

1. Cài gói wheel#

# From the extracted kit root:
python -m pip install packages/python/drmx_django-1.3.0rc13-py3-none-any.whl

Dùng Python 3.12+ và Django được hỗ trợ (5.2–6.0). Thêm drmx vào INSTALLED_APPS. Giữ xác thực, phiên và CsrfViewMiddleware. Cài mới không cần lệnh migration DRM-X; ứng dụng riêng vẫn có thể cần migration thông thường.

2. Cấu hình thiết lập và tuyến xử lý#

# settings.py — keep your existing application settings
DRMX = {
    'SITE_ID': os.environ['DRMX_SITE_ID'],
    'SITE_KEY': os.environ['DRMX_SITE_KEY'],
    'ACCESS_KEY': os.environ['DRMX_ACCESS_KEY'],
    'INSTANCE_ID': 'my-website',
    'POLICY': 'multi-tier-standard',
    'AUTHORIZE': 'myapp.drmx_access.authorize',
}
# urls.py — add to your existing urlpatterns
path('video/', include('drmx.urls'))

Nhập os trong settings và path/include trong urls như thường lệ. Thay myapp bằng mô-đun ứng dụng của bạn.

3. Trả về nội dung được phép truy cập#

Tạo myapp/drmx_access.py. Lệnh gọi lớp truy cập dữ liệu dưới đây chỉ là ví dụ; hãy dùng truy vấn mua hàng, thành viên hoặc đăng ký học hiện có.

def authorize(user, video_id):
    video = customer_catalog.find_authorized_video(user.id, video_id)
    if video is None:
        return None
    return {'content_id': video.drmx_content_id,
            'content_type': 'vod', 'title': video.title}

Trong lần thử cục bộ đầu tiên, chỉ cho phép một tài khoản thử hiện có và một ID video của trang, rồi trả về Content ID đã xuất bản. Quy tắc tạm thời này chỉ được dùng cho thử nghiệm cục bộ. examples/sdk/django/authorization.py đi kèm từ chối mọi người cho đến khi bạn triển khai nó.

Trong vận hành thực tế, truy vấn cơ sở dữ liệu mỗi lần gọi. Trả về None khi không có quyền, quyền hết hạn hoặc bị thu hồi. Nếu bỏ qua chính sách, dùng mặc định đã cấu hình.

4. Đăng nhập và mở trình phát#

Mở /video/lesson-123/ bằng ID video đã chọn trên trang. Hỗ trợ ID dạng chuỗi và UUID. SDK cung cấp trang trình phát, endpoint phiên và chạy lại callback kiểm tra cho từng yêu cầu.

Giữ các cơ chế bảo vệ Django thông thường#

Giữ kiểm tra CSRF đi kèm và endpoint cùng origin. Trình phát hiện tại truyền token CSRF đã che trong URL endpoint; không ghi chuỗi truy vấn vào log truy cập và giữ hành vi no-store/no-referrer. Dùng HTTPS và cookie phiên an toàn.

Bạn đang nâng cấp bản cài đặt cũ có các bảng DRM-X? Hãy giữ lịch sử migration và đọc legacy/README.md trước khi gỡ ứng dụng cũ. SDK mới không xóa các bảng đó.

Kiểm tra trước khi đưa vào vận hành#

  • Đăng nhập bằng người dùng được phép và phát video đã xuất bản trên trình duyệt được hỗ trợ.
  • Thử người chưa đăng nhập và chưa thanh toán, rồi thu hồi quyền hoặc cho quyền hết hạn. Yêu cầu phiên mới phải bị từ chối.
  • Thử đổi Content ID trong trình duyệt hoặc ID video của trang. Máy chủ phải kiểm tra lựa chọn mới.
  • Đặt đúng origin HTTPS công khai, giữ bảo vệ phiên/CSRF của framework và tắt mã danh tính demo.

Phiên và giấy phép DRM hiện có có thời hạn riêng. Yêu cầu mới kiểm tra thay đổi quyền nhưng không xóa giấy phép đã cấp.