使用刷新令牌 symfony oauth2 获取新令牌
Get a new token with the refresh token symfony oauth2
我在 FriendsOfSymfony/FOSRestBundle, FriendsOfSymfony/FOSUserBundle and FriendsOfSymfony/FOSOAuthServerBundle 的 symfony 项目上工作。
在安全部分,我无法使用刷新令牌获取新的访问令牌。我只能得到我的访问令牌。我遵循了一些教程,但在尝试获取新令牌时出现此错误:
{
"error": "unauthorized_client",
"error_description": "Le type de subvention est non autorisee pour cette client_id"
}
url是:http://myproject.local/oauth/v2/token
参数是:
- grant_type: refresh_token
- client_id: client_id
- client_secret: client_secret
- refresh_token: refresh_token
我是不是漏掉了什么配置?或者我使用了错误的 url 或错误的参数?
有什么帮助吗?
该错误表明不允许您的客户端使用 refresh_token
授权类型。
您要做的是将此授权类型添加到您的客户端(代码未测试):
$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
我在 FriendsOfSymfony/FOSRestBundle, FriendsOfSymfony/FOSUserBundle and FriendsOfSymfony/FOSOAuthServerBundle 的 symfony 项目上工作。
在安全部分,我无法使用刷新令牌获取新的访问令牌。我只能得到我的访问令牌。我遵循了一些教程,但在尝试获取新令牌时出现此错误:
{
"error": "unauthorized_client",
"error_description": "Le type de subvention est non autorisee pour cette client_id"
}
url是:http://myproject.local/oauth/v2/token
参数是:
- grant_type: refresh_token
- client_id: client_id
- client_secret: client_secret
- refresh_token: refresh_token
我是不是漏掉了什么配置?或者我使用了错误的 url 或错误的参数? 有什么帮助吗?
该错误表明不允许您的客户端使用 refresh_token
授权类型。
您要做的是将此授权类型添加到您的客户端(代码未测试):
$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