PHP генерирует токен JWT из SHA256, отсутствует подпись - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь аутентифицироваться как приложения GitHub, но постоянно получаю сообщение об ошибке при генерации токена JWT из закрытого ключа. Выходной токен всегда пропускает часть signature , что делает его недействительным.

Вот мой код, я использую библиотеку lcobucci / jwt для генерации

$token = (new Builder())
            ->expiresAt((new DateTimeImmutable('+10 minutes'))->getTimestamp())
            ->issuedAt((new DateTimeImmutable())->getTimestamp())
            ->issuedBy($config['appId'])
            ->getToken(new Sha256(), new Key('file://'.$config['keyPath']));
        // output
        // HEADER       .PAYLOAD            .SIGNATURE
        // eyJ0eX***lIn0.eyJleHAiO***0ODMifQ.

Я уже проверяю действительность закрытого ключа с помощью этого сценария ruby ​​, который генерирует полный токен JWT и успешно использует его для вызова API.

Этот код является частью кодовой базы Laravel 5.8, и я запускаю его с php artisan serve с php 7.3 на ОС Windows 10. Я проверял, что плагин openssl уже включен.

Версия библиотеки от композитора: "lcobucci/jwt": "3.3.0"

1 Ответ

0 голосов
/ 03 июля 2019

Обновление версии библиотеки lcobucci / jwt с 3.3.0 до 3.3.1 решает проблему.

Все еще не уверен, почему. Список изменений не указывает на какие-либо ошибки.

https://github.com/lcobucci/jwt/releases/tag/3.3.1

...