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.
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#
- Configurar
config/drmx.php and server environmentDefinir credenciais, uma instância estável ID e política padrão.
- Autorizar
app/Services/DrmxAccess.phpImplementar o ContentAuthorizer usando permissões atuais.
- Registrar
app/Providers/AppServiceProvider.phpRegistre 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-configTanto 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#
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.
DRM-X 6.0