DRM-X 6.0 logo de la colombe et de la branche d'oliveDRM-X 6.0Documentation
◎ Français

Intégrations Laravel et Node.js

Raccordez Laravel à votre catalogue et à votre système d’achat existants via ContentAuthorizer. Aucune table DRM-X de contenu ou d’autorisation d’accès n’est requise.

Voir le MarkdownExemples en ligneMis à jour le 2026-09-25
Télécharger ce kit de plateforme

SDK en préversion, exemple d’application et code source. Conservez l’arborescence extraite.

Toutes les plateformes et kit complet · Comprendre le processus d'intégration

Les trois endroits que vous personnalisez#

  1. Configurerconfig/drmx.php and server environment

    Définir les identifiants, une instance stable ID et une politique par défaut.

  2. Autoriserapp/Services/DrmxAccess.php

    Implémenter ContentAuthorizer en utilisant les permissions actuelles.

  3. Enregistrerapp/Providers/AppServiceProvider.php

    Enregistrez votre service d’autorisation ; l’accès est refusé par défaut.

1. Installer les paquets Composer fournis#

Utilisez votre application Laravel existante (Laravel 12 est le chemin testé), PHP 8.2+ avec cURL et ZIP. Ajoutez ce dépôt d'artefacts et sa dépendance à son composer.json, en conservant les entrées existantes :

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

Le kit de plateforme contient les ZIP du noyau PHP et de Laravel. Configurez DRMX_SITE_ID, DRMX_SITE_KEY et DRMX_ACCESS_KEY. Actualisez le cache de configuration Laravel après toute modification des paramètres de déploiement. Ce paquet ne charge aucune migration.

2. Implémentez votre vérification d'autorisation#

Créez le service ci-dessous dans votre application. Remplacer customerFindAuthorizedVideo par votre propre requête ; il doit vérifier la permission actuelle de cet utilisateur.

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];
    }
}

Enregistrez-le dans AppServiceProvider::register():

$this->app->bind(
    \Haihaisoft\Drmx\Contracts\ContentAuthorizer::class,
    \App\Services\DrmxAccess::class
);

Retournez null pour l'accès manquant ou refusé. Un premier test local peut restreindre l'accès à un compte de test et à une vidéo avant de retourner un Content ID fixe. Remplacez cette règle par votre requête d'entreprise avant le déploiement.

3. Utilisez votre connexion normale Laravel#

Connectez-vous et ouvrez /drmx/videos/lesson-123. L’adaptateur fournit les routes authentifiées et la page du lecteur, vérifie à nouveau votre service d’autorisation lors des demandes de session et conserve la protection CSRF de Laravel. Excluez la chaîne de requête de l’endpoint des journaux d’accès. Une ancienne installation utilisant des tables doit conserver ses migrations historiques ; consultez legacy/README.md.

Utiliser Node.js à la place ?#

Suivez le tutoriel Express SDK . Son point d'extension équivalent est authorize(userId, videoId).

React, Next.js et Vue#

Télécharger les composants frontend

Choisissez d’abord un backend avec authentification. Copiez DrmxPlayer.tsx pour React/Next.js ou DrmxPlayer.vue pour Vue, ainsi que runtime.mjs et runtime.d.mts. Transmettez les valeurs autorisées contentId et contentType, ainsi que sessionEndpoint de même origine. Conservez le sélecteur vidéo et le jeton CSRF dans cette URL.

Les composants chargent les versions fixes des scripts du lecteur. Votre serveur vérifie toujours le contenu sélectionné et l’utilisateur ; les propriétés transmises par le navigateur n’accordent aucun accès.

Vérifications avant la mise en production#

  • Se connecter en tant qu'utilisateur autorisé et lire une vidéo publiée dans un navigateur pris en charge.
  • Testez des utilisateurs déconnectés et n’ayant pas payé, puis révoquez ou faites expirer l’accès. Les nouvelles demandes de session doivent être refusées.
  • Modifiez le Content ID dans le navigateur ou l’identifiant vidéo du site. Le serveur doit vérifier la nouvelle sélection.
  • Définissez l'origine publique exacte de HTTPS, gardez votre framework pour la protection session/CSRF et désactivez le code d'identité de démo.

Les sessions existantes et les licences DRM ont leur propre durée de vie. Les modifications de permission sont vérifiées sur de nouvelles requêtes; elles n'effacent pas une licence déjà délivrée.