Я пытаюсь проверить Apple identityToken
с помощью API. Я использую библиотеку firebase/php-jwt
.
Я выполнил приведенный ниже код.
<code>$access_token = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
$auth_keys = file_get_contents('https://appleid.apple.com/auth/keys');
$public_keys = JWK::parseKeySet(json_decode($auth_keys, true));
$keys = array_keys($public_keys);
$decoded = JWT::decode($access_token, $public_keys[$keys[0]], ['RS256']);
$decoded_array = (array) $decoded;
echo '<pre>' . print_r($decoded_array, true) . '
';
Когда я запускаю код в первый раз, он работает успешно. но во второй раз возвращается «Ошибка проверки подписи». поэтому я просто изменил с $public_keys[$keys[0]]
на $public_keys[$keys[1]]
, так что это работает. но если я пытаюсь войти снова, он не работает.
Есть какие-либо проблемы с выбором ключа? Я не знаю, как выбрать это. Я перепробовал много поисков, но не нашел правильного решения, поэтому надеюсь получить помощь здесь.
Заранее спасибо