Integrasi Laravel dan Node.js
Hubungkan Laravel ke katalog dan sistem pembelian yang ada melalui ContentAuthorizer. Tidak diperlukan tabel konten atau izin akses DRM-X.
SDK versi pratinjau, contoh aplikasi, dan kode sumber. Pertahankan struktur folder hasil ekstraksi.
Semua platform dan kit lengkap · Pahami proses integrasi
Tiga tempat yang Anda atur#
- Atur
config/drmx.php and server environmentAtur kredensial, instansi stabil ID dan kebijakan baku.
- Otorisasi
app/Services/DrmxAccess.phpImplementasikan ContentAuthorizer berdasarkan izin saat ini.
- Daftarkan
app/Providers/AppServiceProvider.phpDaftarkan layanan otorisasi Anda; secara default akses ditolak.
1. Pasang paket Composer yang disertakan#
Gunakan aplikasi Laravel yang ada (Laravel 12 telah diuji), serta PHP 8.2+ dengan cURL dan ZIP. Tambahkan repositori artefak dan dependensi ini ke composer.json sambil mempertahankan entri yang ada:
{
"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-configZIP PHP core dan Laravel disertakan dalam kit platform. Konfigurasikan DRMX_SITE_ID, DRMX_SITE_KEY, dan DRMX_ACCESS_KEY. Perbarui cache konfigurasi Laravel setelah mengubah pengaturan deployment. Paket ini tidak memuat migrasi.
2. Implementasikan pemeriksaan izin Anda#
Buat layanan di bawah di aplikasi Anda. Ganti customerFindAuthorizedVideo dengan permintaan anda sendiri; itu harus memeriksa ijin pengguna saat ini.
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];
}
}Pendaftaran dalam AppServiceProvider::register():
$this->app->bind(
\Haihaisoft\Drmx\Contracts\ContentAuthorizer::class,
\App\Services\DrmxAccess::class
);Kembalikan null untuk hilangnya atau menolak akses. Sebuah tes lokal pertama dapat membatasi akses ke satu akun tes dan satu video sebelum mengembalikan Content ID yang tetap. Ganti aturan itu dengan permintaan bisnismu sebelum penyebaran.
3. Gunakan login Laravel normal Anda#
Masuk dan buka /drmx/videos/lesson-123. Adaptor menyediakan rute terotentikasi dan halaman pemutar, memeriksa ulang otorisasi Anda pada permintaan sesi dan mempertahankan perlindungan Laravel CSRF. Jauhkan string kueri titik akhir dari log akses. Instalasi database yang lebih tua-didukung harus melestarikan migrasi sejarahnya; lihat legacy/README.md.
Menggunakan Node.js saja?#
Ikuti tutorial Express SDK. Titik ekstensi yang setara adalah authorize(userId, videoId).
React, Next.js dan Vue#
Pilih backend dengan autentikasi terlebih dahulu. Salin DrmxPlayer.tsx untuk React/Next.js atau DrmxPlayer.vue untuk Vue, beserta runtime.mjs dan runtime.d.mts. Kirim contentId dan contentType yang telah diizinkan, serta sessionEndpoint dengan origin yang sama. Pertahankan pemilih video dan token CSRF dalam URL tersebut.
Komponen memuat versi tetap dari skrip pemutar. Server tetap memverifikasi konten dan pengguna terpilih; properti dari browser tidak memberikan izin akses.
Periksa sebelum digunakan dalam produksi#
- Masuk sebagai pengguna yang diperbolehkan dan memutar video yang diterbitkan dalam peramban yang didukung.
- Uji pengguna yang belum login dan belum membayar, lalu cabut izin atau buat izin kedaluwarsa. Permintaan sesi baru harus ditolak.
- Ubah Content ID di browser atau ID video situs. Server harus memeriksa pilihan baru.
- Tetapkan origin HTTPS publik yang tepat, pertahankan perlindungan sesi/CSRF dari framework, dan nonaktifkan kode identitas demo.
Sesi dan lisensi DRM yang ada memiliki masa berlaku sendiri. Permintaan baru memeriksa perubahan izin; perubahan tersebut tidak menghapus lisensi yang sudah diterbitkan.
DRM-X 6.0