Перейти к содержимому
docs.
WORKSPACE

Документации проектов

Открыть каталог проектов
Localzet ServerАсинхронный PHP-серверTriangleФреймворк и компонентыMIX IDИдентификация и интеграцииHack APIПубличные API хакатонаACNПроект и компонентыUserlay / UserNetПроект и компонентыAxiomПроект и компонентыМесседжинг через почтуПроект и компонентыLWT / JWT / JOSEПроект и компоненты✓Финансовая аналитика KimaiПроект и компонентыМультипарадигмальная БДПроект и компонентыZorin PlatformПроект и компонентыZorin TrustПроект и компонентыFloraScope / VegwatchПроект и компонентыaegis-qДокументация проектаaevumdbДокументация проектаauditДокументация проектаauto-invest-managerАвтотрейдерcaine-companionДокументация проектаcertbot-cloudflareДокументация проектаClusterLocalzet Server / ClustercmdveilДокументация проектаConsolePHP CLICronБиблиотеки Localzet Serverdata-connectorДокументация проектаdevice-controlDevice Controlenn-projectДокументация проектаEventsБиблиотеки Localzet ServerflowsintДокументация проектаforgeДокументация проектаHttpClientБиблиотеки Localzet ServerinterpreterСобственный языкinvariaДокументация проектаkeynotesДокументация проектаknotrouteKnotroutelaravel-personal-analyticsДокументация проектаlocalzet-osДокументация проектаmeridianДокументация проектаMQTTБиблиотеки Localzet Servernano-kernelСобственная ОСNoterДокументация проектаpersonal-analyticsДокументация проектаProxyБиблиотеки Localzet ServerPSRБиблиотеки Localzet ServerPSR-7Библиотеки Localzet Serverrschs-monitorДокументация проектаsemsealДокументация проектаshardsealДокументация проектаSocketIOБиблиотеки Localzet ServerSOCKS5Библиотеки Localzet Serverstandalone-analyticsДокументация проектаstatic-php-cliДокументация проектаStorageБиблиотеки Localzet ServersutureДокументация проектаtempoweaveДокументация проектаttsСинтез речиTunnelБиблиотеки Localzet Serverui-kitUI KitvesperДокументация проектаWebAnalyzerWebAnalyzerzorin-access-brokerДокументация проектаzorin-authority-brokerДокументация проектаzorin-authority-sdk-phpДокументация проектаzorin-authority-sdk-pythonДокументация проектаzorin-authority-sdk-tsДокументация проектаzorin-client-intelДокументация проектаzorin-device-core-aospДокументация проектаzorin-host-agentДокументация проектаzorin-native-labДокументация проектаzorin-nodeДокументация проектаzorin-opsДокументация проектаdonstu-python-sdkДокументация проектаfloortraceFloortraceserver-rsLocalzet Server / Cluster
Каталог
Документация/LWT / JWT / JOSE

JWT — API

JWT::encode($claims, ?string $signatureKey = null, ?string $tokenEncryption = null): string

Несмотря на имя $tokenEncryption, аргумент выбирает алгоритм подписи, а не шифрование payload. Ключ и алгоритм обязательны по поведению; null приводит к отказу. Результат — компактная строка из трёх base64url-сегментов.

Claims сериализуются в JSON-объект. Содержимое не шифруется. Автоматической установки issuer, audience, subject и срока действия нет.

JWT::decode(string $token, ?string $signatureKey = null, ?string $tokenEncryption = null)

Возвращает массив claims после проверки подписи и поддерживаемых временных полей. Ключ и алгоритм берутся из аргументов, не из токена. Сравнение header algorithm с доверенно выбранным алгоритмом должно пройти точно.

УсловиеПоведение
Не три сегментаUnexpectedValueException.
Неканонический base64url, padding =, недопустимые символыОтказ декодирования.
Нет нужных typ/alg или они не совпадаютОтказ проверки header.
Есть ненулевой crit/b64Отказ как неподдерживаемого header.
Подпись невернаОтказ до чтения/возврата claims.
Payload не соответствует JSON-объектуОтказ.
exp, nbf, iat имеют неподходящий типUnexpectedValueException.
exp <= time() либо nbf > time()UnexpectedValueException.
iss/aud не подходят приложениюАвтоматической проверки нет.
Нет срока действия, токен отозван приложениемСамостоятельного отказа по этим причинам нет.

В заголовке проверяется наличие crit/b64 через isset(): JSON null не трактуется как заданное поддерживаемое расширение. API не реализует обработку критических JOSE-расширений.

Публичное статическое поле позволяет добавить kid в генерируемый header. Resolver ключей, JWKS download, cache или выбор ключа по этому полю не выполняются. После временной настройки восстановите прежнее значение в долгоживущем процессе, чтобы не перенести kid в следующий несвязанный выпуск токена.

JWT::base64UrlEncode($data): string кодирует байты без padding. Пустая строка не является поддерживаемым входом этого helper.

JWT::base64UrlDecode(string $data): string принимает непустую каноническую строку base64url. После декодирования выполняет обратное кодирование и сравнение с исходной строкой; альтернативные формы с лишними битами или padding отклоняются.

Это низкоуровневые кодировки. Декодирование отдельного сегмента ничего не говорит о доверии к токену.

Вспомогательный класс содержит validateKey($pem, $algorithm, $signing), fromDer($signature, $algorithm) и toDer($signature, $algorithm) для проверки RSA/EC-ключей и преобразования ECDSA-подписей. fromDer() разбирает DER integer-пару, проверяя длины и отсутствие лишних данных; toDer() требует точную ширину JOSE-подписи соответствующего алгоритма.

Для обычного выпуска/проверки используйте JWT, который вызывает эти проверки. Прямой вызов конвертера не проверяет содержимое JWT и его application policy.