我正在阅读OAuth2规范:
https://tools.ietf.org/html/rfc6749#section-4.4.2
特别是关于client_credentials
赠款类型的部分。
如果访问令牌请求是有效且已授权的,则
授权服务器将按照第5.1节中的说明发出访问令牌。
不应包含刷新令牌。如果请求未通过客户端认证或无效,则授权服务器将返回错误响应,如5.2节所述。
成功响应的示例:
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"example",
"expires_in":3600,
"example_parameter":"example_value"
}
`
我有些困惑,为什么授权服务器可以为password
授权类型返回refresh_tokens而不为client_credentials
。
我猜想这与可以将refresh_token交换为access_token的事实有关,并且由于client_credentials授予类型不需要用户名和密码,因此如果您的应用程序密钥和refresh_token被破坏,撤销将变得非常重要。更加困难?
使用客户端凭据授予时,客户端应用程序使用其客户端ID和客户端密钥向授权服务器进行身份验证。如果获得授权,它将获取资源的访问令牌。在这种情况下,无需用户交互,因此无需发出刷新令牌。
当访问令牌过期时,客户端可以使用其自己的凭据来请求新令牌。当客户端希望代表用户访问资源时(此时可能未与客户端进行交互),将使用刷新令牌。
在这种情况下,客户代表自己行事。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句