DRM-X 6.0 logo de pomba e ramo de oliveiraDRM-X 6.0Documentação
◎ Português

Integração Laravel e Node.js

Conecte Laravel ao catálogo e ao sistema de compras existentes por meio de ContentAuthorizer. Não são necessárias tabelas DRM-X de conteúdo ou de autorização de acesso.

Ver MarkdownExemplos onlineAtualizado em 2026-09-25
Baixe este kit de plataforma

SDK em versão prévia, exemplo de aplicação e código-fonte. Mantenha a estrutura de pastas extraída.

Todas as plataformas e kit completo · Entenda o processo de integração

Os três pontos que você personaliza#

  1. Configurarconfig/drmx.php and server environment

    Definir credenciais, uma instância estável ID e política padrão.

  2. Autorizarapp/Services/DrmxAccess.php

    Implementar o ContentAuthorizer usando permissões atuais.

  3. Registrarapp/Providers/AppServiceProvider.php

    Registre seu serviço de autorização; por padrão, o acesso é negado.

1. Instalar os pacotes Composer incluídos#

Use sua aplicação Laravel existente (Laravel 12 é o caminho testado), PHP 8.2+ com cURL e ZIP. Adicione este repositório de artefatos e dependência ao seu composer.json, preservando entradas existentes:

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

Tanto o núcleo PHP e Laravel ZIPs estão incluídos no kit de plataforma. Configurar DRMX_SITE_ID, DRMX_SITE_KEY e DRMX_ACCESS_KEY. Atualizar o cache de configuração do Laravel após alterar as configurações de implantação. Este pacote não carrega migrações.

2. Implementar sua verificação de permissão#

Crie o serviço abaixo em sua aplicação. Substitua o customerFindAuthorizedVideo por sua própria consulta; ela deve verificar a permissão atual deste usuário.

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

Registre-o em AppServiceProvider::register():

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

Devolver o null para o acesso em falta ou negado. Um primeiro teste local pode restringir o acesso a uma conta de teste e um vídeo antes de retornar um Content ID fixo. Substitua essa regra por sua consulta de negócios antes da implantação.

3. Usar o seu login normal do Laravel#

Entre e abra /drmx/videos/lesson-123. O adaptador fornece as rotas autenticadas e a página do reprodutor, verifica novamente seu serviço de autorização em solicitações de sessão e mantém a proteção CSRF do Laravel. Exclua a string de consulta do endpoint dos logs de acesso. Instalações antigas baseadas em banco de dados devem preservar as migrações históricas; veja legacy/README.md.

Usando o Node.js em vez disso?#

Siga o tutorial do Express SDK. O ponto de extensão equivalente é authorize(userId, videoId).

React, Next.js e Vue#

Baixe componentes frontend

Escolha primeiro um backend com autenticação. Copie DrmxPlayer.tsx para React/Next.js ou DrmxPlayer.vue para Vue, junto com runtime.mjs e runtime.d.mts. Passe os valores autorizados contentId e contentType, além de sessionEndpoint da mesma origem. Preserve o seletor de vídeo e o token CSRF nessa URL.

Os componentes carregam versões fixas dos scripts do reprodutor. O servidor continua verificando o conteúdo selecionado e o usuário; propriedades enviadas pelo navegador não concedem acesso.

Verificar antes de colocar em produção#

  • Entre como um usuário permitido e reproduza um vídeo publicado em um navegador suportado.
  • Teste usuários desconectados e usuários que não pagaram; depois, revogue o acesso ou faça-o expirar. Novas solicitações de sessão devem ser negadas.
  • Altere o Content ID no navegador ou o ID de vídeo do site. O servidor deve verificar a nova seleção.
  • Defina a exata origem pública HTTPS, mantenha a proteção session/CSRF do seu framework e desative o código de identidade demo.

As sessões existentes e as licenças DRM têm seus próprios prazos de validade. Novas solicitações verificam alterações de permissão; elas não apagam uma licença já emitida.