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?
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