У меня возникла проблема с созданием токена с использованием закрытых ключей JWK, и из этого фрагмента я получаю {"ошибку": "OpenSSL не удалось проверить ключ"когда я пытаюсь использовать ключ с помощью пакетов в js/python, я могу кажется, это работает, однако я просто потерял реализацию PHP.
я прочитал документацию и попробовал обернуть/преобразовать ее в PEM, но я все еще не могу заставить ее работать
и я думаю либо я что-то упускаю, либо мне, вероятно, стоит попытать счастья в другом пакете
буду благодарен за любую помощь, так как я уже некоторое время застрял в этом
редактировать: мне удалось чтобы заставить его работать после преобразования в PEM (хотя я сделал это на Python), есть ли пакет в php, который может это сделать? JWK->PEM?
пробовал использовать Jose\Component\Core\Util\RSAKey; но время выполнения> 30 секунд, и я получаю тайм-аут
use Jose\Component\Core\Util\RSAKey;
use Firebase\JWT\JWT;
public static function createJwtToken()
{
$jwkPrivateKey = 'eyJrdHkiOiJSU0EiLCJuIjoibWFRZk1RYjNHUTdOWENVX3JmeHJRUE9qcURhNGd6WEtwZ1dnVjhHVTJIcVZkVHQwYkIwa1NXcVJnMlpkNWNuT005TVFDakIwVEZaRU9BcjFJTFpkQVFDMEV6UXBndzZ2czlFeGlHWW1jd2dyM19mVUlzaGllUHNzWC16TmxjVG4tRmZWU21MekdiZUhuYUc1cG5HQ01udW1wTGwxNEhLVndmdGNmSnV0eHR1d3o3YXZ5NHZTSTR1Q2xwVUVtTEJ6VG93bUdXOC1MdjF3YjEwSVhoYWZ3cTE5SDZ5VjAxc0JZYU94bUY1d1FvY2NvSlp3UWxsc3ZhU2dYcV84S1lLV3c2RnZPeHlPNnI4bzJoQzJMdExYa0RiRF9XSkh1d2ZYbUZZY2JSdWQzUjhwcEt5eDlMaWZLM212Sm9va3ozU2VFVU1HVEx5Q052WHpBbFpSSUN3N3F3IiwiZSI6IkFRQUIiLCJkIjoiTFFZMUk5TjBOeklveVQtYk5UdjdIRm9wMUNKUkdSWjY4QU5IRldDRDQ1cXMwT0dmQVEzYk0tNllmUWJUTG9OZ3U3dzJfNTFxZjNKcVpIZ0ZsTlFNVmo1a0J4cXFyWjd3cTRQNl9ZdGQ2aWp6WHB1TVhiTVdkSGk2N05PQ19jaHA2Rk9wRERjS0liZXdkT2ZQZFhEZkpEY3JReXVjV1MyTEtJRW1mZGZMYWJKRUtIaVQ0NXhQb1U0a2Y3akd2cWVQbHktblJteV9fUWcwNF9WTGRHNjdQNmJKa1F4aGZkaXY1Vlp1WktGam16QzY2MVpiNU1IUGVmZUFlejRWZzFWNDVsTTQ2bVZMM3pOSHQ5MjJqSUhZT1c2VzJrekFNV2NMWS1hT2RwRzhxbG9HNVFkLXkzTktmempSeUZWSHgzdVRUb3I1QXp4TU52dzJuRmYxWlI4d3FRIiwicCI6IjJCTF9JaEhmRmh6NWJzOXFHYktNMW1zYmlIRE1CMFZXdDBNS0RPTG1uTlpyalkyd0lsRHR2dmtKNWZic09lcld2dXR4UjFqTWNnMTF1SVhqNTZXXzc0djRGVmp1SnU1M2F0VTI1NEhmVXhfS2tneGtpRVlRZWZxanhXTXRtMGllQkVmWEkySGpMa3E2UkVtdENWOHJiNUpLZ084WldMVlFFZ0pCeXNsaEVmayIsInEiOiJ0Z2ZXeVZvMHdrdXY2d0U3NkEtTERhTzNCQ1g1Z3N6djEtcGNUcmlTLXd2MFpTYndBRHVaR05IM1dpdERUWFJ4WUQ3My1EenYteW9VLVVrSDVKYnFRanhZWUxUbm5jRzhLQnRLdmlhVm9MaF9jR2xnRmlMLVJleHI1VFA3VDA5dHFWMHp4YlNGNExTcHJVdUdSVU5jVlJBNEFqb3JoOGhHZmRySWhFV2FvOE0iLCJkcCI6IlJ4cEpOcTdtMkdJRWVzQnFTN2FEdmZOVkJoc0lLTVJhZXNmbXdNTFIzSDU2dWdRTUY5N0Z2WGc2RjZDZnI1ZGx2MEctN3hsN2ZYU01ib0l3c3dQS0cwdldBVUJZYmhzLTFMc0E3RUhDZVpvV2tPVGZHRERtTHgyWlV0VUdKdmxJZG1RbG1aRVdyeDhNR0hpZUpsMVk3OGdXR0VPVjlha0Voa2lUMmVWV3VoRSIsImRxIjoiUGlJYTNJdmY2bG92YUFYNXp0SlBZbzU1VF84dVZjbGlMTThnUnZhVnBQLUZvbWxTRHFKSk5jR2xycS1KdjR4NWpxS3Z2Wm5fU0RvckFwUTlEM2U3Nm5QeXJyX1JOM1lEcGFUN05FQ3pYakxidlNFYTNUT0FtNW1Ca3JEVm5WSzlXY3dvZWRtT3dRNnB4Qzg5VzdNTWR6U2NDWmFWZVRtUlpqQWh0WlNVbmtVIiwicWkiOiJIWVFvTXFFWjFJOUE1TlByTUlsZFRUdnNOOWhuaHlLaWFYN0VKQ0Q4bHAzVXpPcThURHZCVEw2dVdMN013RF9kOURtdXZWWWEtenVndTl0YS1jd3ZER3pwbVhwODZ6VTZGc1d6aG9LNGN3WGF4Z29ZUDRmSnAzbWI0RjY5cm5zSDBzTGlUbERIaUxqSEhSQUJOTlZrN3ZXUElwZUF3eW5QQUJ5U2hKOXBkejAiLCJhbGciOiJSUzI1NiIsImtpZCI6InBvd2Vyc3luYy03OGY2MTAyZjFhIn0=';
$privateKeyJson = json_decode(base64_decode($jwkPrivateKey), true);
$jwk = new JWK($privateKeyJson);
$pem = RSAKey::createFromJWK($jwk)->toPEM();
// 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);
}
$jwkPrivateKey =
Подробнее здесь: https://stackoverflow.com/questions/790 ... ed-rsa-key
Создание/подпись токена с использованием частного ключа RSA в кодировке JWK ⇐ Php
Кемеровские программисты php общаются здесь
1727904727
Anonymous
У меня возникла проблема с созданием токена с использованием закрытых ключей JWK, и из этого фрагмента я получаю {"ошибку": "OpenSSL не удалось проверить ключ"когда я пытаюсь использовать ключ с помощью пакетов в js/python, я могу кажется, это работает, однако я просто потерял реализацию PHP.
я прочитал документацию и попробовал обернуть/преобразовать ее в PEM, но я все еще не могу заставить ее работать
и я думаю либо я что-то упускаю, либо мне, вероятно, стоит попытать счастья в другом пакете
буду благодарен за любую помощь, так как я уже некоторое время застрял в этом
редактировать: мне удалось чтобы заставить его работать после преобразования в PEM (хотя я сделал это на Python), есть ли пакет в php, который может это сделать? JWK->PEM?
пробовал использовать Jose\Component\Core\Util\RSAKey; но время выполнения> 30 секунд, и я получаю тайм-аут
use Jose\Component\Core\Util\RSAKey;
use Firebase\JWT\JWT;
public static function createJwtToken()
{
$jwkPrivateKey = 'eyJrdHkiOiJSU0EiLCJuIjoibWFRZk1RYjNHUTdOWENVX3JmeHJRUE9qcURhNGd6WEtwZ1dnVjhHVTJIcVZkVHQwYkIwa1NXcVJnMlpkNWNuT005TVFDakIwVEZaRU9BcjFJTFpkQVFDMEV6UXBndzZ2czlFeGlHWW1jd2dyM19mVUlzaGllUHNzWC16TmxjVG4tRmZWU21MekdiZUhuYUc1cG5HQ01udW1wTGwxNEhLVndmdGNmSnV0eHR1d3o3YXZ5NHZTSTR1Q2xwVUVtTEJ6VG93bUdXOC1MdjF3YjEwSVhoYWZ3cTE5SDZ5VjAxc0JZYU94bUY1d1FvY2NvSlp3UWxsc3ZhU2dYcV84S1lLV3c2RnZPeHlPNnI4bzJoQzJMdExYa0RiRF9XSkh1d2ZYbUZZY2JSdWQzUjhwcEt5eDlMaWZLM212Sm9va3ozU2VFVU1HVEx5Q052WHpBbFpSSUN3N3F3IiwiZSI6IkFRQUIiLCJkIjoiTFFZMUk5TjBOeklveVQtYk5UdjdIRm9wMUNKUkdSWjY4QU5IRldDRDQ1cXMwT0dmQVEzYk0tNllmUWJUTG9OZ3U3dzJfNTFxZjNKcVpIZ0ZsTlFNVmo1a0J4cXFyWjd3cTRQNl9ZdGQ2aWp6WHB1TVhiTVdkSGk2N05PQ19jaHA2Rk9wRERjS0liZXdkT2ZQZFhEZkpEY3JReXVjV1MyTEtJRW1mZGZMYWJKRUtIaVQ0NXhQb1U0a2Y3akd2cWVQbHktblJteV9fUWcwNF9WTGRHNjdQNmJKa1F4aGZkaXY1Vlp1WktGam16QzY2MVpiNU1IUGVmZUFlejRWZzFWNDVsTTQ2bVZMM3pOSHQ5MjJqSUhZT1c2VzJrekFNV2NMWS1hT2RwRzhxbG9HNVFkLXkzTktmempSeUZWSHgzdVRUb3I1QXp4TU52dzJuRmYxWlI4d3FRIiwicCI6IjJCTF9JaEhmRmh6NWJzOXFHYktNMW1zYmlIRE1CMFZXdDBNS0RPTG1uTlpyalkyd0lsRHR2dmtKNWZic09lcld2dXR4UjFqTWNnMTF1SVhqNTZXXzc0djRGVmp1SnU1M2F0VTI1NEhmVXhfS2tneGtpRVlRZWZxanhXTXRtMGllQkVmWEkySGpMa3E2UkVtdENWOHJiNUpLZ084WldMVlFFZ0pCeXNsaEVmayIsInEiOiJ0Z2ZXeVZvMHdrdXY2d0U3NkEtTERhTzNCQ1g1Z3N6djEtcGNUcmlTLXd2MFpTYndBRHVaR05IM1dpdERUWFJ4WUQ3My1EenYteW9VLVVrSDVKYnFRanhZWUxUbm5jRzhLQnRLdmlhVm9MaF9jR2xnRmlMLVJleHI1VFA3VDA5dHFWMHp4YlNGNExTcHJVdUdSVU5jVlJBNEFqb3JoOGhHZmRySWhFV2FvOE0iLCJkcCI6IlJ4cEpOcTdtMkdJRWVzQnFTN2FEdmZOVkJoc0lLTVJhZXNmbXdNTFIzSDU2dWdRTUY5N0Z2WGc2RjZDZnI1ZGx2MEctN3hsN2ZYU01ib0l3c3dQS0cwdldBVUJZYmhzLTFMc0E3RUhDZVpvV2tPVGZHRERtTHgyWlV0VUdKdmxJZG1RbG1aRVdyeDhNR0hpZUpsMVk3OGdXR0VPVjlha0Voa2lUMmVWV3VoRSIsImRxIjoiUGlJYTNJdmY2bG92YUFYNXp0SlBZbzU1VF84dVZjbGlMTThnUnZhVnBQLUZvbWxTRHFKSk5jR2xycS1KdjR4NWpxS3Z2Wm5fU0RvckFwUTlEM2U3Nm5QeXJyX1JOM1lEcGFUN05FQ3pYakxidlNFYTNUT0FtNW1Ca3JEVm5WSzlXY3dvZWRtT3dRNnB4Qzg5VzdNTWR6U2NDWmFWZVRtUlpqQWh0WlNVbmtVIiwicWkiOiJIWVFvTXFFWjFJOUE1TlByTUlsZFRUdnNOOWhuaHlLaWFYN0VKQ0Q4bHAzVXpPcThURHZCVEw2dVdMN013RF9kOURtdXZWWWEtenVndTl0YS1jd3ZER3pwbVhwODZ6VTZGc1d6aG9LNGN3WGF4Z29ZUDRmSnAzbWI0RjY5cm5zSDBzTGlUbERIaUxqSEhSQUJOTlZrN3ZXUElwZUF3eW5QQUJ5U2hKOXBkejAiLCJhbGciOiJSUzI1NiIsImtpZCI6InBvd2Vyc3luYy03OGY2MTAyZjFhIn0=';
$privateKeyJson = json_decode(base64_decode($jwkPrivateKey), true);
$jwk = new JWK($privateKeyJson);
$pem = RSAKey::createFromJWK($jwk)->toPEM();
// 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);
}
$jwkPrivateKey =
Подробнее здесь: [url]https://stackoverflow.com/questions/79045327/creating-signing-a-token-using-a-private-jwk-encoded-rsa-key[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия