# Shopify protected video

Use a signed Shopify app proxy and server-verified purchases to open a protected-video page.

재생이 승인되는 과정

백엔드가 시청 가능한 사용자를 결정합니다. DRM-X는 재생 승인 정보를 제공하며, 플레이어는 이를 사용해 DRM 라이선스를 요청합니다.

- 01**시청자**

서비스에 로그인하고 동영상 재생을 요청합니다.

- 02**고객 백엔드**

사용자의 구매 내역, 구독 상태 또는 기타 시청 권한을 확인합니다.

- 03**DRM-X**

선택한 재생 규칙을 적용하고 재생 설정과 승인 정보를 반환합니다.

- 04**플레이어**

반환된 승인 정보를 사용해 재생에 필요한 DRM 라이선스를 요청합니다.

귀하의 백엔드가 접근을 결정합니다. DRM-X는 서명 된 정책을 시행합니다. 암호화 된 미디어 및 DRM 라이센스는 별도의 배송 경로를 따릅니다.

## Configure the custom app[#](#setup)



Configure a Shopify app proxy that forwards a storefront path to /shopify/proxy on the HTTPS Node bridge. Store the app secret, myshopify.com store name and Admin API access token only in the server configuration. Request the customer and order read scopes needed by your store.



Create a bridge resource with provider=shopify and externalResource set to the numeric Shopify product ID. Its Content ID and license policy remain server-owned. Link the storefront customer to the proxy path with the internal resource name.



[Download third-party integration source](https://drm-x6-cdn.1aicloud.com/drmx-frameworks-1.3.0-preview.2-f4ee10f26cdf.zip)





## Verify the customer and purchase[#](#access)



The bridge validates the app-proxy HMAC, timestamp, store and signed logged_in_customer_id. Anonymous requests are denied. It then queries the matching customer’s orders through the Admin GraphQL API and requires a paid, uncancelled order with a remaining quantity of the mapped product.



The proxy returns a link with a one-use, 30-second ticket. Opening it displays the player on the bridge origin, where the session API can remain same-origin. Each new playback request rechecks the purchase.





## Store-specific validation[#](#limits)



This preview targets customer identities supplied by the signed app proxy. New customer-account extensions, subscription renewals, bundles and third-party membership apps need separate adapters; do not assume that a storefront Liquid customer variable authorizes playback.



The order scan is bounded to 20 pages of 50 orders and the first 100 line items in each order. Shopify may restrict historical orders unless the app has approved all-orders access. Requests outside this coverage are denied; use a verified entitlement ledger for larger stores or long-lived purchase access.



Local signature and authorization tests are available. A development store must still test login, paid and refunded orders, canceled orders, old purchases, altered product IDs and real DRM playback before release.



[Shopify app-proxy authentication](https://shopify.dev/docs/apps/build/online-store/app-proxies/authenticate-app-proxies)

<!-- Canonical: https://docs.drm-x.com/ko/integrations/shopify -->
<!-- Language: ko -->
