Django-তে সুরক্ষিত ভিডিও
Django authentication ও নিজের অনুমতি যাচাইয়ের কলব্যাক ব্যবহার করুন। DRM-X প্যাকেজ ভিডিও বা প্রবেশাধিকার দেওয়ার কোনো টেবিল তৈরি করে না।
Preview SDK, অ্যাপের উদাহরণ ও সোর্স। এক্সট্র্যাক্ট করা ফোল্ডারের কাঠামো বজায় রাখুন।
সব প্ল্যাটফর্ম ও সম্পূর্ণ কিট · ইন্টিগ্রেশন প্রক্রিয়া বুঝুন
যে তিনটি জায়গা আপনি কাস্টমাইজ করবেন#
- কনফিগার করুন
settings.pydrmx যোগ করে AUTHORIZE-সহ DRMX কনফিগার করুন।
- অনুমোদন দিন
আপনার অ্যাপ: drmx_access.py
আপনার বর্তমান ব্যবস্থার ভিত্তিতে authorize(user, video_id) বাস্তবায়ন করুন।
- রাউট
urls.pydrmx.urls অন্তর্ভুক্ত করুন; স্বাভাবিক লগইন ও CSRF middleware ব্যবহার করুন।
1. wheel প্যাকেজ ইনস্টল করুন#
# From the extracted kit root:
python -m pip install packages/python/drmx_django-1.3.0rc13-py3-none-any.whlPython 3.12+ ও সমর্থিত Django সংস্করণ (5.2–6.0) ব্যবহার করুন। INSTALLED_APPS-তে drmx যোগ করুন। authentication, session ও CsrfViewMiddleware বজায় রাখুন। নতুন ইনস্টলেশনে DRM-X migration command লাগে না; আপনার নিজের অ্যাপের স্বাভাবিক migration তবু লাগতে পারে।
2. সেটিংস ও রাউট কনফিগার করুন#
# 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'))স্বাভাবিকভাবে settings-এ os এবং urls-এ path/include ইমপোর্ট করুন। myapp-এর জায়গায় নিজের অ্যাপ মডিউল দিন।
3. অনুমোদিত কনটেন্ট ফেরত দিন#
myapp/drmx_access.py তৈরি করুন। নিচের repository কলটি বোঝানোর জন্য দেওয়া; কেনাকাটা, সদস্যপদ বা কোর্সে ভর্তির জন্য আপনার বর্তমান কোয়েরি ব্যবহার করুন।
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}প্রথম লোকাল পরীক্ষায় একজন বর্তমান পরীক্ষামূলক ব্যবহারকারী ও ওয়েবসাইটের একটি ভিডিও ID-কে অনুমতি দিন, তারপর আপনার প্রকাশিত Content ID ফেরত দিন। এই সাময়িক অনুমতির নিয়ম শুধু লোকাল পরীক্ষায় সীমাবদ্ধ রাখুন। সঙ্গে দেওয়া examples/sdk/django/authorization.py বাস্তবায়ন না করা পর্যন্ত সবার প্রবেশাধিকার প্রত্যাখ্যান করে।
প্রোডাকশনে প্রতিটি কলে ডেটাবেস কোয়েরি ব্যবহার করুন। প্রবেশাধিকার না থাকলে, মেয়াদ শেষ হলে বা বাতিল হলে None ফেরত দিন। নীতি না দিলে কনফিগার করা ডিফল্ট নীতি ব্যবহৃত হয়।
4. লগইন করে প্লেয়ার খুলুন#
ওয়েবসাইটে আপনার নির্বাচিত ভিডিও ID দিয়ে /video/lesson-123/ খুলুন। স্ট্রিং ID ও UUIDs ব্যবহার করা যায়। SDK প্লেয়ার পৃষ্ঠা ও সেশন এন্ডপয়েন্ট দেয় এবং প্রতিটি অনুরোধে কলব্যাক আবার যাচাই করে।
Django-এর স্বাভাবিক সুরক্ষা বজায় রাখুন#
সঙ্গে দেওয়া CSRF যাচাই ও একই origin-এর এন্ডপয়েন্ট বজায় রাখুন। বর্তমান প্লেয়ার এন্ডপয়েন্ট URL-এ একটি masked CSRF token পাঠায়; access log থেকে query string বাদ দিন এবং no-store/no-referrer আচরণ বজায় রাখুন। HTTPS ও সুরক্ষিত session cookie ব্যবহার করুন।
DRM-X টেবিল আছে এমন পুরোনো ইনস্টলেশন আপগ্রেড করছেন? মাইগ্রেশন ইতিহাস রাখুন এবং পুরোনো অ্যাপ সরানোর আগে legacy/README.md পড়ুন। নতুন SDK ওই টেবিলগুলো মুছে দেয় না।
প্রকাশের আগে যাচাই করুন#
- অনুমতি আছে এমন ব্যবহারকারী হিসেবে লগইন করে সমর্থিত ব্রাউজারে প্রকাশিত ভিডিও চালান।
- লগইন না করা ও অর্থ না দেওয়া ব্যবহারকারী পরীক্ষা করুন, তারপর প্রবেশাধিকার বাতিল করুন বা মেয়াদ শেষ করুন। নতুন সেশন অনুরোধ অবশ্যই প্রত্যাখ্যাত হতে হবে।
- ব্রাউজারে Content ID বা ওয়েবসাইটের ভিডিও ID বদলান। সার্ভারকে নতুন নির্বাচন যাচাই করতে হবে।
- সঠিক পাবলিক HTTPS origin নির্ধারণ করুন, ফ্রেমওয়ার্কের session/CSRF সুরক্ষা বজায় রাখুন এবং ডেমো identity code বন্ধ করুন।
বর্তমান সেশন ও DRM লাইসেন্সের নিজস্ব মেয়াদ থাকে। নতুন অনুরোধে অনুমতির পরিবর্তন যাচাই করা হয়; এতে আগে ইস্যু করা লাইসেন্স মুছে যায় না।
DRM-X 6.0