Я все еще новичок и хочу спросить о задаче, над которой я работаю, в этом случае я выполняю аутентификацию с использованием oauth2, чтобы иметь доступ к API Apple, но у меня возникает ошибка при входе с использованием Apple, появляется invalid_client, для ошибки invalid_client я сделал следующее:
- проверьте client_id, используемый в http-запросе (сомнения) (я пытался изменить client_id)
- настроить заголовок jwt и полезную нагрузку jwt в соответствии с требованиями параметров (проверено)
- и проверьте подпись JWT (проверено)
из трех шагов, которые я пробовал, у меня возникли сомнения в аутентификации скрипта или идентификаторе клиента
пожалуйста, скажите мне, где моя ошибка в именовании client_id или в разделе скрипта спасибо за помощь, извините за мой плохой английский здесь я включаю скрипт, который я использую
``
$provider = new Apple([
'clientId' => 'com.example.example',
'teamId' => 'apple-team-id',
'keyFileId' => 'apple-key-file-id',
'keyFilePath' => storage_path('apple-key-file-path'),
'redirectUri' => 'http://localhost:8000/Store/Gold_Store/GoldStore-create',
]);
if(!isset($_POST['code'])){
//jika kita tidak mempunyai authorization code
$authUrl = $provider->getAuthorizationUrl();
$_SESSION['oauth2state'] = $provider->getState();
header('Location: '.$authUrl);
exit;
//check given state against previously stored one to mitigate CSRF attack
} elseif (empty($_POST['state']) || ($_POST['state'] !== $_SESSION['oauth2state'])) {
unset($_SESSION['oauth2state']);
exit('Invalid state');
}else{
//try to get access token(using the authorization code grant)
$token = $provider->getAccessToken('authorization_code', [
'code' => $_POST['code']
]);
//Optional: Now u have a token u can look up a user profile data
try {
//we got an access token, lets now get the user's detail
$user = $provider->getResourceOwner($token);
//use these details to create a new profile
printf('hello %s!', $user->getFirstName());
//refresh token
$refreshToken = $token->getRefreshToken();
$refreshTokenExpiration = $token->getRefreshTokenExpires();
} catch (Exception $e) {
//Failed to get user details
exit(':-(');
}
//use this to interact with an API on the users behalf
echo $token->getToken();
}
это мой результат json
``{ "ошибка": "invalid_client" }