OAuth 2.0授权码请求和响应
时间:2020-01-09 10:47:16 来源:igfitidea点击:
授权码授予总共包括2个请求和2个响应。授权请求+响应,以及令牌请求+响应。
授权请求
授权请求被发送到授权端点以获得授权码。以下是请求中使用的参数:
response_type | 必需。必须设置为code |
client_id | 必需。注册客户端时,授权服务器分配的客户端标识符。 |
redirect_uri | 可选。客户端注册的重定向URI。 |
scope | 可选。请求的可能范围。 |
state | 可选(推荐)。需要传递给客户端请求URI的任何客户端状态。 |
授权回应
授权响应包含获取访问令牌所需的授权代码。以下是响应中包含的参数:
code | 必填。授权码。 |
state | 是必需的(如果存在于请求中)。与客户机在“ state”参数中发送的值相同(如果有)。 |
授权错误响应
如果授权期间发生错误,则可能会发生两种情况。
首先是,客户端未通过身份验证或者识别。例如,在请求中发送了错误的重定向URI。在这种情况下,授权服务器不得将资源所有者重定向到重定向URI。而是应将错误通知资源所有者。
第二种情况是客户端已正确验证,但其他失败。在这种情况下,以下错误响应将发送到客户端,包括在重定向URI中:
错误 | 必需。必须是一组预定义的错误代码之一。请参见规范中的代码及其含义。 |
error_description | 可选。易读的UTF-8编码文本,用于描述错误。适用于开发人员,而不是最终用户。 |
error_uri | 可选。指向人类可读网页的URI,其中包含有关错误的信息。 |
state | 是必需的(如果存在于授权请求中)。与请求中的“ state”参数中发送的值相同。 |
令牌请求
一旦获得授权代码,客户端就可以使用该代码来获取访问令牌。这是访问令牌请求参数:
client_id | 必需。客户端应用程序的ID。 |
client_secret | 必需。客户端应用程序的客户端密码。 |
grant_type | 必需。必须设置为authorization_code 。 |
code | 必填。授权服务器接收到的授权代码。 |
redirect_uri | 必需,如果请求URI包含在授权请求中。然后必须相同。 |
令牌响应
访问令牌请求的响应是一个JSON字符串,其中包含访问令牌以及更多信息:
{ "access_token" : "...", "token_type" : "...", "expires_in" : "...", "refresh_token" : "...", }
" access_token"属性是授权服务器分配的访问令牌。
" token_type"属性是授权服务器分配的一种令牌。
expires_in属性是访问令牌过期的秒数,不再有效。访问令牌的到期是可选的。
refresh_token属性包含一个刷新令牌,以防访问令牌可能过期。一旦此响应中返回的令牌不再有效,就使用刷新令牌来获取新的访问令牌。