/oauth2/oauth2/token

申请令牌

OAuth2.0四种模式需要使用"application/x-www-form-urlencoded”格式向授权服务请求访问令牌。

URL

https://api.hscloud.cn/oauth2/oauth2/token

HTTP请求方式

POST

支持格式

JSON

访问级别

普通

HEADER参数

参数名

必选

类型 中文名

说明

Authorization

true

String 认证 样式为:Basic Base64Encode(App Key, App Secret),例如:
Authorization:Basic eHh4LUtleS14eHg6eHh4LXNlY3JldC14eHg=

说明: 函数 Base64Encode(App Key, App Secret) 是对"App Key:App Secret"进行 Base64 编码后的字符串(区分大小写,包含冒号,但不包含双引号,采用 UTF-8 编码)。

其中App Key和App Secret可在开放平台上创建应用后获取。

请求参数

参数名 必选 类型 中文名 说明
grant_type true string 授权类型 授权码模式时,必须为"authorization_code";
用户密码模式时,必须为“password”;
客户端凭证模式时,必须为“client_credentials”;
刷新访问令牌时,则必须为“refresh_token”
code false string 授权码 表示由授权服务器产生用于应用向授权服务器交换令牌的授权码,授权码应该在被颁发后迅速过期,以降低泄露风险。
客户端一定不能重用同一个授权码,如果一个授权码被多次使用,授权服务器可能撤销之前基于这个授权码分发的所有令牌。
授权码与客户端标识符和重定向URI相绑定,授权码模式时必须输入。
redirect_uri true string 回调地址 应为创建应用时注册登记的回调地址,且需要将url进行URLEncode编码,编码格式为UTF-8
username false string 用户名 用于用户密码模式,资源所有者的用户名,其它模式无此参数
password false string 密码 用于用户密码模式,资源所有者的密码,其它模式无此参数
open_id false string 使用者唯一标识 用于唯一标识使用同一终端应用的用户,可以填充用户ID、设备UUID等。
即开放平台根据”App Key+Open ID”组合的来判定使用者的唯一性。
scope false string 授权范围 刷新访问令牌时有效,用于重新指定授权服务器通知App应用颁发令牌的访问范围,多个授权范围可以使用逗号(,)连接;

注意:指定的范围必须是在原业务范围基础上缩小后的范围。
refresh_token false string 刷新令牌 刷新访问令牌时有效,填写在申请令牌时获得的“Refresh Token”字符串。

返回字段说明

参数名 类型 中文名 说明
access_token string 访问令牌 由授权服务授权颁发的访问令牌
token_type string 令牌类型 目前必为"Bearer"
expires_in string 访问令牌生命周期 表示访问令牌生命周期的秒数。
例如,“3600”表示自响应被授权服务器产生的时刻起,访问令牌将在1小时后过期。
scope string 授权范围 用于授权服务器通知App应用颁发令牌的访问范围,多个授权范围可以使用逗号(,)连接。
refresh_token string 刷新令牌 访问令牌失效后,必须重新申请令牌。所以我们可以在令牌临近失效时,使用刷新令牌(Refresh Token)来续订。

请求示例

下面是“授权码模式”时,使用应用标识串和授权码串置换访问令牌的请求报文示例:

POST /oauth2/oauth2/token HTTP/1.1
Host: api.hscloud.cn
Authorization: Basic MTg2NDE3Y2UteHh4eC14eHh4LXh4eHgteHh4eHgxYjkyMDAzOjYxNGE1OGRhLXh4eHgteHh4eC14eHh4LXh4eHh4ZmZmYjA1MQ==
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA&redirect_uri=https%3A%2F%2Fwww%2Eexample%2Ecom%2Fre

下面是“客户端凭证模式”时,使用应用标识串置换访问令牌的请求报文示例:

POST /oauth2/oauth2/token HTTP/1.1
Host: api.hscloud.cn
Authorization: Basic MTg2NDE3Y2UteHh4eC14eHh4LXh4eHgteHh4eHgxYjkyMDAzOjYxNGE1OGRhLXh4eHgteHh4eC14eHh4LXh4eHh4ZmZmYjA1MQ==
Content-Type: application/x-www-form-urlencoded 

grant_type= client_credentials

返回示例

HTTP/1.1 200 OK
Content-Type: application/json;charset=utf-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"Bearer",
"expires_in":86400,
"scope":"iuc,trade,trade_entrust"
"refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA"
}

错误处理

详细请参见:OAuth2.0接口错误处理