Laravel ও Node.js ইন্টিগ্রেশন
ContentAuthorizer দিয়ে Laravel-কে আপনার বর্তমান ক্যাটালগ ও কেনাকাটার ব্যবস্থার সঙ্গে যুক্ত করুন। DRM-X-এর আলাদা কনটেন্ট বা প্রবেশাধিকার টেবিল লাগবে না।
Preview SDK, অ্যাপের উদাহরণ ও সোর্স। এক্সট্র্যাক্ট করা ফোল্ডারের কাঠামো বজায় রাখুন।
সব প্ল্যাটফর্ম ও সম্পূর্ণ কিট · ইন্টিগ্রেশন প্রক্রিয়া বুঝুন
যে তিনটি জায়গা আপনি কাস্টমাইজ করবেন#
- কনফিগার করুন
config/drmx.php and server environmentশংসাপত্র, স্থায়ী instance ID এবং ডিফল্ট নীতি নির্ধারণ করুন।
- অনুমোদন দিন
app/Services/DrmxAccess.phpবর্তমান অনুমতি ব্যবহার করে ContentAuthorizer বাস্তবায়ন করুন।
- নিবন্ধন করুন
app/Providers/AppServiceProvider.phpআপনার অনুমতি যাচাইয়ের সার্ভিস বাইন্ড করুন; ডিফল্ট আচরণে প্রবেশাধিকার প্রত্যাখ্যান করা হয়।
1. সঙ্গে দেওয়া Composer প্যাকেজ ইনস্টল করুন#
বর্তমান Laravel অ্যাপ (Laravel 12 পরীক্ষিত), cURL ও ZIP-সহ PHP 8.2+ ব্যবহার করুন। আগের entry রেখে এর composer.json-তে এই artifact repository ও dependency যোগ করুন:
{
"repositories": [{"type": "artifact", "url": "/absolute/path/to/kit/packages/composer"}],
"require": {"haihaisoft/drmx-laravel": "1.3.0-RC13"},
"minimum-stability": "RC",
"prefer-stable": true
}composer update haihaisoft/drmx-laravel --with-dependencies
php artisan vendor:publish --tag=drmx-configপ্ল্যাটফর্ম কিটে PHP core ও Laravel—দুটির ZIP-ই রয়েছে। DRMX_SITE_ID, DRMX_SITE_KEY ও DRMX_ACCESS_KEY কনফিগার করুন। ডিপ্লয়মেন্ট সেটিংস বদলালে Laravel-এর কনফিগ ক্যাশ হালনাগাদ করুন। এই প্যাকেজ কোনো ডেটাবেস মাইগ্রেশন লোড করে না।
2. অনুমতি যাচাইয়ের কোড লিখুন#
অ্যাপে নিচের সার্ভিস তৈরি করুন। customerFindAuthorizedVideo-এর জায়গায় নিজের কোয়েরি দিন; সেটিকে এই ব্যবহারকারীর বর্তমান অনুমতি যাচাই করতে হবে।
namespace App\Services;
use Haihaisoft\Drmx\Contracts\ContentAuthorizer;
use Illuminate\Contracts\Auth\Authenticatable;
final class DrmxAccess implements ContentAuthorizer {
public function authorize(Authenticatable $user, string $videoId): ?array {
$video = customerFindAuthorizedVideo($user->getAuthIdentifier(), $videoId);
if ($video === null) return null;
return ['content_id' => $video->drmx_content_id,
'content_type' => 'vod', 'title' => $video->title];
}
}AppServiceProvider::register()-তে এটি নিবন্ধন করুন:
$this->app->bind(
\Haihaisoft\Drmx\Contracts\ContentAuthorizer::class,
\App\Services\DrmxAccess::class
);প্রবেশাধিকার না থাকলে বা প্রত্যাখ্যাত হলে null ফেরত দিন। প্রথম লোকাল পরীক্ষায় স্থির Content ID ফেরত দেওয়ার আগে একটি পরীক্ষামূলক অ্যাকাউন্ট ও একটি ভিডিওতে প্রবেশাধিকার সীমিত রাখতে পারেন। ডিপ্লয় করার আগে এই নিয়মের জায়গায় ব্যবসায়িক কোয়েরি দিন।
3. Laravel-এর স্বাভাবিক লগইন ব্যবহার করুন#
লগইন করে /drmx/videos/lesson-123 খুলুন। অ্যাডাপ্টার পরিচয় যাচাই করা route ও player page দেয়, সেশন অনুরোধে authorizer আবার যাচাই করে এবং Laravel CSRF সুরক্ষা বজায় রাখে। এন্ডপয়েন্টের query string access log-এ রাখবেন না। পুরোনো ডেটাবেস-ভিত্তিক ইনস্টলেশনে আগের মাইগ্রেশন ইতিহাস রাখতে হবে; legacy/README.md দেখুন।
এর বদলে Node.js ব্যবহার করছেন?#
Express SDK নির্দেশিকা অনুসরণ করুন। এর সমতুল্য সম্প্রসারণের স্থান হলো authorize(userId, videoId)।
React, Next.js ও Vue#
ফ্রন্টএন্ড কম্পোনেন্ট ডাউনলোড করুন
প্রথমে পরিচয় যাচাই করে এমন একটি ব্যাকএন্ড বেছে নিন। React/Next.js-এর জন্য DrmxPlayer.tsx অথবা Vue-এর জন্য DrmxPlayer.vue, সঙ্গে runtime.mjs ও runtime.d.mts কপি করুন। অনুমোদিত contentId, contentType এবং একই origin-এর sessionEndpoint পাঠান। সেই URL-এ ভিডিও নির্বাচক ও CSRF টোকেন বজায় রাখুন।
কম্পোনেন্টগুলো নির্দিষ্ট সংস্করণের player script লোড করে। সার্ভারকে তবু নির্বাচিত কনটেন্ট ও ব্যবহারকারী যাচাই করতে হয়; ব্রাউজারের props প্রবেশাধিকার দেয় না।
প্রকাশের আগে যাচাই করুন#
- অনুমতি আছে এমন ব্যবহারকারী হিসেবে লগইন করে সমর্থিত ব্রাউজারে প্রকাশিত ভিডিও চালান।
- লগইন না করা ও অর্থ না দেওয়া ব্যবহারকারী পরীক্ষা করুন, তারপর প্রবেশাধিকার বাতিল করুন বা মেয়াদ শেষ করুন। নতুন সেশন অনুরোধ অবশ্যই প্রত্যাখ্যাত হতে হবে।
- ব্রাউজারে Content ID বা ওয়েবসাইটের ভিডিও ID বদলান। সার্ভারকে নতুন নির্বাচন যাচাই করতে হবে।
- সঠিক পাবলিক HTTPS origin নির্ধারণ করুন, ফ্রেমওয়ার্কের session/CSRF সুরক্ষা বজায় রাখুন এবং ডেমো identity code বন্ধ করুন।
বর্তমান সেশন ও DRM লাইসেন্সের নিজস্ব মেয়াদ থাকে। নতুন অনুরোধে অনুমতির পরিবর্তন যাচাই করা হয়; এতে আগে ইস্যু করা লাইসেন্স মুছে যায় না।
DRM-X 6.0