Как создать действительный JWT в PHP с использованием RSA256Php

Кемеровские программисты php общаются здесь
Ответить
Гость
 Как создать действительный JWT в PHP с использованием RSA256

Сообщение Гость »


У меня возникли аналогичные трудности с этим вопросом. Мне нужно создать JWT в php. У меня есть следующий код:

define('RSA_PRIVATE', 'MIICXAIB......EWxOf9o='); $payload = json_encode([ 'sub' => 'имя пользователя', 'электронная почта' => 'john@example.com', 'given_name' => 'Джон', 'family_name' => 'Пример', 'iat' => время(), 'одноразовый номер' => '12345' ]); $header = json_encode([ 'тип' => 'JWT', 'алг' => 'RS256' ]); $base64UrlHeader = base64UrlEncode($header); $base64UrlPayload = base64UrlEncode($payload); $signature = hash_hmac('sha256', "$base64UrlHeader.$base64UrlPayload", RSA_PRIVATE, true); $base64UrlSignature = base64UrlEncode($signature); $jwt = "$base64UrlHeader.$base64UrlPayload.$base64UrlSignature"; эхо ($ jwt); функция base64UrlEncode($text) { вернуть str_replace( ['+', '/', '='], ['-', '_', ''], base64_encode($текст) ); } Каждый раз, когда я пытаюсь выполнить проверку у третьего лица, которому нужен мой JWT, он возвращает мне сообщение

Проверка подписи не удалась: подпись rsa не совпадает

Когда я пытаюсь выполнить проверку с помощью отладчика JWT, он тоже сообщает, что он недействителен.

Я что-то упустил? Как и в предыдущем вопросе, я видел только примеры, когда люди используют небольшие секреты, а не частные ключи RSA.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»