DRM-X 6.0 حمام وشعار فرع الزيتونDRM-X 6.0الوثائق
◎ العربية

تكاملات Laravel وNode.js

اربط Laravel بكتالوجك ونظام المشتريات الحاليين عبر ContentAuthorizer. لا يلزم إنشاء جداول DRM-X للمحتوى أو الوصول.

عرض Markdownأمثلة قابلة للتجربةآخر تحديث 2026-09-25
تنزيل حزمة هذه المنصة

SDK بإصدار معاينة ومثال تطبيق وشفرة مصدرية. احتفظ ببنية المجلدات بعد الاستخراج.

كل المنصات والحزمة الكاملة · فهم عملية التكامل

المواضع الثلاثة التي تخصّصها#

  1. الإعدادconfig/drmx.php and server environment

    اضبط بيانات الاعتماد ومعرّف نسخة ثابتًا والسياسة الافتراضية.

  2. منح الإذنapp/Services/DrmxAccess.php

    نفّذ ContentAuthorizer باستخدام الصلاحيات الحالية.

  3. التسجيلapp/Providers/AppServiceProvider.php

    اربط خدمة التحقق من الصلاحية؛ الإعداد الافتراضي يرفض الوصول.

1. تثبيت حزم Composer المرفقة#

استخدم تطبيق Laravel الحالي (Laravel 12 هو المسار المختبَر)، وPHP 8.2+ مع cURL وZIP. أضف مستودع الحزم والتبعية التاليين إلى composer.json مع الاحتفاظ بالإدخالات الموجودة:

{
  "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

تتضمن حزمة المنصة ملفَي ZIP لكل من PHP core وLaravel. اضبط 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. يوفّر المهايئ المسارات المحمية بالمصادقة وصفحة المشغّل، ويعيد فحص خدمة التحقق من الصلاحية عند طلبات الجلسة ويحافظ على حماية Laravel CSRF. استبعد سلسلة استعلام نقطة النهاية من سجلات الوصول. يجب أن يحتفظ التثبيت القديم المعتمد على قاعدة بيانات بسجل ترحيلاته؛ راجع legacy/README.md.

هل تستخدم Node.js بدلًا منه؟#

اتبع دليل Express SDK. نقطة التوسعة المكافئة فيه هي authorize(userId, videoId).

React وNext.js وVue#

تنزيل مكونات الواجهة الأمامية

اختر أولًا إحدى واجهات الخادم التي تتحقق من هوية المستخدم. انسخ DrmxPlayer.tsx لـ React/Next.js أو DrmxPlayer.vue لـ Vue، مع runtime.mjs وruntime.d.mts. مرّر contentId وcontentType المصرّح بهما وsessionEndpoint من الأصل نفسه. احتفظ بمحدّد الفيديو ورمز CSRF في ذلك الرابط.

تحمّل المكونات برامج المشغّل النصية ذات الإصدارات المثبّتة. يظل خادمك مسؤولًا عن التحقق من المحتوى المختار والمستخدم؛ ولا تمنح خصائص المتصفح صلاحية الوصول.

التحقق قبل النشر#

  • سجّل الدخول كمستخدم مسموح له وشغّل فيديو منشورًا في متصفح مدعوم.
  • اختبر مستخدمين لم يسجّلوا الدخول وآخرين لم يدفعوا، ثم ألغِ الوصول أو اجعله منتهيًا. يجب رفض طلبات الجلسات الجديدة.
  • غيّر Content ID أو معرّف فيديو الموقع في المتصفح. يجب أن يتحقق الخادم من الاختيار الجديد.
  • اضبط أصل HTTPS العام بدقة، واحتفظ بحماية الجلسات وCSRF في إطار العمل، وعطّل شفرة الهوية التجريبية.

للجلسات وتراخيص DRM الحالية مدد صلاحية مستقلة. تُفحص تغييرات الصلاحيات عند الطلبات الجديدة؛ ولا تمحو ترخيصًا سبق إصداره.