Я пытаюсь аутентифицироваться как приложения 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"