Создание/подпись токена с использованием частного ключа RSA в кодировке JWKPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Создание/подпись токена с использованием частного ключа RSA в кодировке JWK

Сообщение Anonymous »

У меня возникла проблема с созданием токена с использованием закрытых ключей JWK, и из этого фрагмента я получаю {"ошибку": "OpenSSL не удалось проверить ключ"когда я пытаюсь использовать ключ с помощью пакетов в js/python, я могу кажется, это работает, однако я просто потерял реализацию PHP.
я прочитал документацию и попробовал обернуть/преобразовать ее в PEM, но я все еще не могу заставить ее работать
и я думаю либо я что-то упустил, либо мне, вероятно, стоит попытать счастья с другим пакетом
буду благодарен за любую помощь, так как я уже некоторое время застрял в этом
use Firebase\JWT\JWT;
public static function createJwtToken()
{
$jwkPrivateKey = 'eyJrdHkiOiJSU0EiLCJuIjoibWFRZk1RYjNHUTdOWENVX3JmeHJRUE9qcURhNGd6WEtwZ1dnVjhHVTJIcVZkVHQwYkIwa1NXcVJnMlpkNWNuT005TVFDakIwVEZaRU9BcjFJTFpkQVFDMEV6UXBndzZ2czlFeGlHWW1jd2dyM19mVUlzaGllUHNzWC16TmxjVG4tRmZWU21MekdiZUhuYUc1cG5HQ01udW1wTGwxNEhLVndmdGNmSnV0eHR1d3o3YXZ5NHZTSTR1Q2xwVUVtTEJ6VG93bUdXOC1MdjF3YjEwSVhoYWZ3cTE5SDZ5VjAxc0JZYU94bUY1d1FvY2NvSlp3UWxsc3ZhU2dYcV84S1lLV3c2RnZPeHlPNnI4bzJoQzJMdExYa0RiRF9XSkh1d2ZYbUZZY2JSdWQzUjhwcEt5eDlMaWZLM212Sm9va3ozU2VFVU1HVEx5Q052WHpBbFpSSUN3N3F3IiwiZSI6IkFRQUIiLCJkIjoiTFFZMUk5TjBOeklveVQtYk5UdjdIRm9wMUNKUkdSWjY4QU5IRldDRDQ1cXMwT0dmQVEzYk0tNllmUWJUTG9OZ3U3dzJfNTFxZjNKcVpIZ0ZsTlFNVmo1a0J4cXFyWjd3cTRQNl9ZdGQ2aWp6WHB1TVhiTVdkSGk2N05PQ19jaHA2Rk9wRERjS0liZXdkT2ZQZFhEZkpEY3JReXVjV1MyTEtJRW1mZGZMYWJKRUtIaVQ0NXhQb1U0a2Y3akd2cWVQbHktblJteV9fUWcwNF9WTGRHNjdQNmJKa1F4aGZkaXY1Vlp1WktGam16QzY2MVpiNU1IUGVmZUFlejRWZzFWNDVsTTQ2bVZMM3pOSHQ5MjJqSUhZT1c2VzJrekFNV2NMWS1hT2RwRzhxbG9HNVFkLXkzTktmempSeUZWSHgzdVRUb3I1QXp4TU52dzJuRmYxWlI4d3FRIiwicCI6IjJCTF9JaEhmRmh6NWJzOXFHYktNMW1zYmlIRE1CMFZXdDBNS0RPTG1uTlpyalkyd0lsRHR2dmtKNWZic09lcld2dXR4UjFqTWNnMTF1SVhqNTZXXzc0djRGVmp1SnU1M2F0VTI1NEhmVXhfS2tneGtpRVlRZWZxanhXTXRtMGllQkVmWEkySGpMa3E2UkVtdENWOHJiNUpLZ084WldMVlFFZ0pCeXNsaEVmayIsInEiOiJ0Z2ZXeVZvMHdrdXY2d0U3NkEtTERhTzNCQ1g1Z3N6djEtcGNUcmlTLXd2MFpTYndBRHVaR05IM1dpdERUWFJ4WUQ3My1EenYteW9VLVVrSDVKYnFRanhZWUxUbm5jRzhLQnRLdmlhVm9MaF9jR2xnRmlMLVJleHI1VFA3VDA5dHFWMHp4YlNGNExTcHJVdUdSVU5jVlJBNEFqb3JoOGhHZmRySWhFV2FvOE0iLCJkcCI6IlJ4cEpOcTdtMkdJRWVzQnFTN2FEdmZOVkJoc0lLTVJhZXNmbXdNTFIzSDU2dWdRTUY5N0Z2WGc2RjZDZnI1ZGx2MEctN3hsN2ZYU01ib0l3c3dQS0cwdldBVUJZYmhzLTFMc0E3RUhDZVpvV2tPVGZHRERtTHgyWlV0VUdKdmxJZG1RbG1aRVdyeDhNR0hpZUpsMVk3OGdXR0VPVjlha0Voa2lUMmVWV3VoRSIsImRxIjoiUGlJYTNJdmY2bG92YUFYNXp0SlBZbzU1VF84dVZjbGlMTThnUnZhVnBQLUZvbWxTRHFKSk5jR2xycS1KdjR4NWpxS3Z2Wm5fU0RvckFwUTlEM2U3Nm5QeXJyX1JOM1lEcGFUN05FQ3pYakxidlNFYTNUT0FtNW1Ca3JEVm5WSzlXY3dvZWRtT3dRNnB4Qzg5VzdNTWR6U2NDWmFWZVRtUlpqQWh0WlNVbmtVIiwicWkiOiJIWVFvTXFFWjFJOUE1TlByTUlsZFRUdnNOOWhuaHlLaWFYN0VKQ0Q4bHAzVXpPcThURHZCVEw2dVdMN013RF9kOURtdXZWWWEtenVndTl0YS1jd3ZER3pwbVhwODZ6VTZGc1d6aG9LNGN3WGF4Z29ZUDRmSnAzbWI0RjY5cm5zSDBzTGlUbERIaUxqSEhSQUJOTlZrN3ZXUElwZUF3eW5QQUJ5U2hKOXBkejAiLCJhbGciOiJSUzI1NiIsImtpZCI6InBvd2Vyc3luYy03OGY2MTAyZjFhIn0=';

$privateKeyJson = json_decode(base64_decode($jwkPrivateKey), true);
// dd($privateKeyJson);

if (! $privateKeyJson) {
throw new Exception('Invalid private key format.');
}

$header = [
'alg' => $privateKeyJson['alg'],
'kid' => $privateKeyJson['kid'],
];

$payload = [
'sub' => 1,
'iat' => time(),
'exp' => time() + 300, // Token expires in 5 minutes
];

return JWT::encode($payload, $jwkPrivateKey, $header['alg'], $header['kid'], $header);
}


Подробнее здесь: https://stackoverflow.com/questions/790 ... ed-rsa-key
Ответить

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

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

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

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

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