LaravelおよびNode.jsの統合
ContentAuthorizer を通じて Laravel を既存のカタログと購入システムに接続します。DRM-X のコンテンツテーブルやアクセス権テーブルは不要です。
プレビュー版 SDK、アプリのサンプル、ソースが含まれます。展開後のフォルダー構造を維持してください。
カスタマイズする3つの場所#
- 設定
config/drmx.php and server environment認証情報、安定したインスタンス ID およびデフォルトポリシーを設定します。
- 認可
app/Services/DrmxAccess.phpContentAuthorizer を現在のパーミッションで実装します。
- 登録
app/Providers/AppServiceProvider.php認可サービスをバインドします。デフォルトではアクセスを拒否します。
1. 同梱の Composer パッケージをインストール#
既存の Laravel アプリ(テスト済みは Laravel 12)と、cURL・ZIP 対応の PHP 8.2+ を使います。既存項目を維持しながら、このアーティファクトリポジトリと依存関係を 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-configPHPコアとLaravel ZIPの両方がプラットフォームキットに含まれています。 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を返す前に1つのテストアカウントと1つのビデオへのアクセスを制限することができます。 展開前にビジネスクエリでルールを置換します。
3. 通常の Laravel ログインを使用#
ログインして /drmx/videos/lesson-123 を開きます。アダプターは認証付きルートとプレーヤーページを提供し、セッション要求ごとに認可サービスを再実行して Laravel CSRF 保護を維持します。エンドポイントのクエリ文字列をアクセスログに記録しないでください。旧版のデータベース利用型インストールではマイグレーション履歴を保持する必要があります。legacy/README.md を参照してください。
代わりにNode.jsを使用する?#
Express SDK チュートリアルを参照してください。対応する拡張ポイントは authorize(userId, videoId) です。
React、Next.jsおよびVue#
まず認証付きのバックエンドを選びます。React/Next.js には DrmxPlayer.tsx、Vue には DrmxPlayer.vue を使い、runtime.mjs と runtime.d.mts もコピーします。許可された contentId、contentType と、同一オリジンの sessionEndpoint を渡します。その URL に動画選択値と CSRF トークンを保持します。
コンポーネントはピン留めされたプレーヤースクリプトを読み込みます。 お使いのサーバーは、選択したコンテンツとユーザーを検証します。ブラウザのプロップはアクセスを許可しません。
本番公開前の確認#
- 許可されたユーザーとしてサインインし、サポートされているブラウザーで公開された動画を再生します。
- 未ログインと未払いのユーザーを試し、権限の取り消しと期限切れもテストします。新規セッション要求は拒否される必要があります。
- ブラウザContent IDまたはWebサイトのビデオIDを変更します。 サーバは新しい選択を点検しなければなりません。
- 公開 HTTPS オリジンを正確に設定し、フレームワークのセッション/CSRF 保護を維持して、デモ用のユーザー識別コードを無効にしてください。
既存のセッションと DRM ライセンスには独自の有効期間があります。新しいリクエストでは権限の変更を確認しますが、発行済みのライセンスを消去するわけではありません。
DRM-X 6.0