user6830821
user6830821

Reputation:

Get a new token with the refresh token symfony oauth2

I work on symfony project with FriendsOfSymfony/FOSRestBundle, FriendsOfSymfony/FOSUserBundle and FriendsOfSymfony/FOSOAuthServerBundle.

In the security part, I can't get my new access token with using the refresh token. I can only get my access token. I have followed some tutorials and I got this error when I try to get a new token:

{
   "error": "unauthorized_client",
   "error_description": "Le type de subvention est non autorisee pour cette client_id"
}

The url is: http://myproject.local/oauth/v2/token

The params are :

  • grant_type: refresh_token
  • client_id: client_id
  • client_secret: client_secret
  • refresh_token: refresh_token

Did I missed any configuration? Or the I used a wrong url or a wrong params? Any help please?

Upvotes: 0

Views: 2379

Answers (1)

Spomky-Labs
Spomky-Labs

Reputation: 16725

The error indicates that your client is not allowed to use the refresh_token grant type. What you have to do is to add this grant type to your client (code not tested):

$clientManager = $this->container->get('fos_oauth_server.client_manager.default'); // Get the Client manager
$client = $clientManager->findClientByPublicId('PUBLIC ID OF YOUR CLIENT HERE'); // Get the Client
$grant = $client->getAllowedGrantTypes(); // Get the grant types
$grant[] = 'refresh_token'; // Add the refresh_token grant type
$client->setAllowedGrantTypes($grant); // Modify your Client
$clientManager->updateClient($client); // Save your Client

Upvotes: 0

Related Questions