thephpleague/oauth2-client

Oauth2 refresh problems

Fearofthedark66 opened this issue · 1 comments

Hi,

I am having trouble to refresh my tokens and I must be missing something here. With the code below I am getting a : ### Required parameter not passed: "refresh_token" error.

 $provider = new \League\OAuth2\Client\Provider\GenericProvider([
      'clientId'                => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX',   
      'clientSecret'            => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
      'urlAuthorize'            => 'https://login.xero.com/identity/connect/authorize',
      'urlAccessToken'          => 'https://identity.xero.com/connect/token',
      'urlResourceOwnerDetails' => 'https://identity.xero.com/resources'
    ]);
```

    $refreshToken = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX';

   
    $newAccessToken = $provider->getAccessToken('authorizaton_code', [
      'refresh_token' =>  $refreshToken,
      'grant_type' => 'authorization_code'
    ]);
`

I think the problem you are facing is coming from here:

You have added 'authorizaton_code' as the first parameter to $provider->getAccessToken, but you provide a $refreshToken instead of an $authCode.

Add 'refresh_token' as a first parameter to the $provider->getAccessToken and delete the 'grant_type' => 'authorization_code' row.