The documentation for Sylius's REST API表示其oAuth授权系统支持三种授权类型。
php bin/console sylius:oauth-server:create-client \
--grant-type="password" \
--grant-type="refresh_token" \
--grant-type="token"
通过password
授予类型,您可以使用管理员用户名和密码(假设用户具有/api/oauth/v2/token
角色)从ROLE_API_ACCESS
获取令牌。
获取此令牌时,它会带有access_token
和refresh_token
。
{
"access_token":"ODE0NzA2NmU1NGVkNDc5ODNiNjcxZDBhZTA0NGY3MzY4NjBlMTc3ZDk0ZjM3MTIyOTlkMTQzMWU3YjM3ODc5ZQ",
"expires_in":3600,
"token_type":"bearer",
"scope":null,
"refresh_token":"NjNlNGY1YTQ5NmJhMzZiNzdlY2JmMzQyZDc5MGZkYTA5Mzg4MDc2MmRmZTRmOWE0MmMwNzU4NzBmMGM3YzVmZQ"
}
当令牌过期时,如果客户端具有refresh_token
授予类型,则可以使用/api/oauth/v2/token
端点使用refresh_token
参数/参数来获取新令牌。
那么token
授权类型是什么?当我想到这一点时,我被困在“如果一开始没有令牌,您怎么能从/api/oauth/v2/token
获取令牌?”或“如果您已经拥有一个尚未过期的令牌,那么为什么您需要使用token
来获得一个新令牌?”
那我想念什么?令牌授予类型是什么?
答案 0 :(得分:1)
OAuth2提供了几种授权类型。 See them here。当您要求"token"
时,我不确定sylius使用的是哪一个,但我假设使用授权码。
The most common OAuth 2.0 grant types are listed below.
Authorization Code
Implicit
Password
Client Credentials
Device Code
Refresh Token