acdn_token
Обязательный
Основной параметр токена.
Детальная генерация токена и причины 403.
Когда функция включена, запрос должен содержать валидный токен и timestamp истечения. Невалидные или истекшие подписи отклоняются с 403.
ACDN использует модель подписанных URL с параметрами формата ACDN.
Краткий алгоритм:
hashable = token_key + signed_path + expires if token_ip_enabled: hashable += client_ip hashable += canonical_query_without(acdn_token, expires) token = base64url(sha256(hashable))
acdn_tokenОбязательный
Основной параметр токена.
expiresОбязательный
Unix timestamp в секундах. После этого времени запрос отклоняется.
token_pathОпциональный
Ограничивает токен указанным префиксом пути. Запрос должен попадать в этот scope.
token_ipОпционально (настройка зоны)
Если включено на зоне, IP клиента становится частью подписи.
Формат query-токена:
https://cdn.example.uz/video/intro.mp4?acdn_token=TOKEN_VALUE&expires=1767225600
Формат path-токена:
https://cdn.example.uz/acdn_token=TOKEN_VALUE&expires=1767225600/video/intro.mp4
Токен со scope через token_path:
https://cdn.example.uz/video/intro.mp4?quality=hd&acdn_token=TOKEN_VALUE&expires=1767225600&token_path=/video
Защита HLS-манифеста через token_path:
Подписывайте путь перед index.m3u8 (без имени манифеста). Используйте path-style token, чтобы этот же токен-сегмент применялся к относительным chunk-запросам.
Подписанный URL манифеста (path-style token):
https://cdn.example.uz/acdn_token=TOKEN_VALUE&expires=1767225600&token_path=%2Flive%2Fch-1/live/ch-1/index.m3u8
Следующий запрос относительного chunk от плеера:
https://cdn.example.uz/acdn_token=TOKEN_VALUE&expires=1767225600&token_path=%2Flive%2Fch-1/live/ch-1/seg-00001.ts
PHP-пример, согласованный с ACDN signer:
$params = ['quality' => 'hd', 'token_path' => '/video'];
$expires = time() + 3600;
ksort($params, SORT_STRING);
$hashParts = [];
foreach ($params as $key => $value) {
$hashParts[] = $key . '=' . (string) $value;
}
$hashable = $tokenKey . '/video' . $expires . implode('&', $hashParts);
$token = rtrim(strtr(base64_encode(hash('sha256', $hashable, true)), '+/', '-_'), '=');
Генерируйте ACDN-совместимые ссылки query-style и path-style прямо в браузере.