<?php
требуется один раз ('vendor/autoload.php ');
Хосе использует \Component\Core \AlgorithmManager;
Хосе использует \Component\Core \ JWK;
Хосе использует \Component\Signature\Algorithm\ ES256;
Хосе использует \Component\Signature\Algorithm\PS256;
Хосе использует \ Easy \Build;
// secret user key | секретный ключ пользователя
$SecretKey = '
{
"kty": "EC", "alg": "ES256", "crv": "P-256",
"x": "pSH0jvbtVZiseTpJZk0_yfudEIv86uwjeH_gr1qmOGA",
"y": "eGdC9EIGmhCheM_T8vhS4Qwk7RfaPRBxF3W5omgBc_M",
"d": "DuSjR5eZBp5S-9HNKA8kRQFA_3Akkept-dTbwFoq_3w"
}
';
// create jwk instance from given secret user key | создаем экземпляр jwk из полученного секретного пользовательского ключа
$ es256 = новый ES256();
$jwk = JWK::createFromJson($SecretKey);
$am = новый AlgorithmManager([$es256]);
// We build token with user claims | Собираем токен с пользовательскими claim
$jws = Build::jws() // Мы создаем JWS
-> iat(время ())
->jti(rand())
-> alg($ es256)
-> aud('usr')
// идентификатор пользователя, один из: адрес электронной почты, uid (идентификатор пользователя), тема, tgid (идентификатор телеграммы)
// идентификатор пользователя, одно из: email, uid (user id), subject, tgid (telegram id)
// Email не будет работать, если у пользователя две учетные записи с одним и тем же адресом электронной почты, в таком случае предпочтительнее идентификатор пользователя (uid).
// Email не будет работать в случае если у пользователя два аккаунта с один и тем же email (auth0 & google)
// Используйте uid в таких случаях
-> претензия ('email', '[email protected] ')
// Вы опускаете этот заголовок, если у учетной записи есть один ключ
// Этот заголовок можно не указывать, если у аккаунта единственный ключ
-> заголовок ('kid', '2')
->подписать ($jwk) // Подписать токен с заданным JWK
;
эхо "JWT:" . $ jws . "\n";
// initialize curl for future usage | инициализируем curl для последующего использования
$curl = curl_init();
// set options for curl connection | устанавлием параметры для curl соединения
curl_setopt_array($curl, [
// включить отображение результатов
CURLOPT_RETURNTRANSFER => 1,
// url of request || url запроса
CURLOPT_URL => 'https://www.bitzlato.com/api/auth/whoami ',
// adding token to headers | добавляем токен в заголовки
CURLOPT_HTTPHEADER => массив(
"Авторизация: предъявитель $ jws"
)
]);
// save response to value | сохраняем ответ в переменную
$response = curl_exec($curl);
// receive code of response | получаем код ответа
$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
// close connection | закрываем соединение
curl_close($curl);
// displaying result | выводим результат
эхо-код $ httpcode . ' ' . $ответ;