Вход в Apple Oauth2 на php laravel

Я все еще новичок и хочу спросить о задаче, над которой я работаю, в этом случае я выполняю аутентификацию с использованием oauth2, чтобы иметь доступ к API Apple, но у меня возникает ошибка при входе с использованием Apple, появляется invalid_client, для ошибки invalid_client я сделал следующее:

  1. проверьте client_id, используемый в http-запросе (сомнения) (я пытался изменить client_id)
  2. настроить заголовок jwt и полезную нагрузку jwt в соответствии с требованиями параметров (проверено)
  3. и проверьте подпись 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" }


person rizky mashudi    schedule 02.06.2020    source источник


Ответы (1)


Ошибка invalid_client означает, что секрет клиента неверен, возможно, проблема в том, как вы его генерируете, или в деталях, которые вы использовали.

Вы можете проверить этот фрагмент кода, чтобы проверить вход Apple в PHP

https://gist.github.com/ameen-sarsour/e14a1d5bae5b61080dfdd5b1430c3e10

person ِAmin    schedule 05.07.2020