申请令牌(token)
OAuth2.0四种模式需要使用"application/x-www-form-urlencoded”格式向授权服务请求访问令牌。
网关地址
沙箱环境调用地址: | https://sandbox.hscloud.cn |
数据核查类生产调用地址: | https://api.hscloud.cn |
仿真业务接口生产调用地址: | https://vopen.hscloud.cn |
其余生产调用地址: | https://open.hscloud.cn |
URL
https://sandbox.hscloud.cn/oauth2/oauth2/token |
---|
是否需要业务登录
否 |
---|
HTTP请求方式
POST |
---|
请求参数
参数名 | 类型 | 必填 | 最大长度 | 默认值 | 中文名 | 描述 |
---|---|---|---|---|---|---|
scope | String | 否 | 授权范围 |
刷新访问令牌时有效,用于重新指定授权服务器通知App应用颁发令牌的访问范围,多个授权范围可以使用逗号(,)连接;
|
||
authorization | String | 是 | 认证 |
样式为:Basic Base64Encode(App Key, App Secret),例如:<br/>Authorization:Basic eHh4LUtleS14eHg6eHh4LXNlY3JldC14eHg=<br/><br/>说明: 函数 Base64Encode(App Key, App Secret) 是对App Key:App Secret进行 Base64 编码后的字符串(区分大小写,包含冒号,但不包含双引号,采用 UTF-8 编码)。<br/><br/>其中App Key和App Secret可在开放平台上创建应用后获取。
|
||
code | String | 否 | 授权码 |
表示由授权服务器产生用于应用向授权服务器交换令牌的授权码,授权码应该在被颁发后迅速过期,以降低泄露风险。<br/>客户端一定不能重用同一个授权码,如果一个授权码被多次使用,授权服务器可能撤销之前基于这个授权码分发的所有令牌。<br/>授权码与客户端标识符和重定向URI相绑定,授权码模式时必须输入。
|
||
redirect_uri | String | 否 | 回调地址 |
应为创建应用时注册登记的回调地址,且需要将url进行URLEncode编码,编码格式为UTF-8
|
||
refresh_token | String | 否 | 刷新令牌 |
刷新访问令牌时有效,填写在申请令牌时获得的Refresh Token字符串。
|
||
password | String | 否 | 密码 |
用于用户密码模式,资源所有者的密码,其它模式无此参数
|
||
grant_type | String | 是 | 授权类型 |
授权码模式时,必须为authorization_code;<br/>用户密码模式时,必须为password;<br/>客户端凭证模式时,必须为client_credentials;<br/>刷新访问令牌时,则必须为refresh_token
|
||
open_id | String | 否 | 使用者唯一标识 |
用于唯一标识使用同一终端应用的用户,可以填充用户ID、设备UUID等。<br/>即开放平台根据”App Key+Open ID”组合的来判定使用者的唯一性。
|
||
username | String | 否 | 用户名 |
用于用户密码模式,资源所有者的用户名,其它模式无此参数
|
返回参数
参数名 | 类型 | 最大长度 | 默认值 | 中文名 | 描述 |
---|---|---|---|---|---|
access_token | String | 访问令牌 |
由授权服务授权颁发的访问令牌
|
||
refresh_token | String | 刷新令牌 |
访问令牌失效后,必须重新申请令牌。所以我们可以在令牌临近失效时,使用刷新令牌(Refresh Token)来续订。
|
||
scope | String | 授权范围 |
用于授权服务器通知App应用颁发令牌的访问范围,多个授权范围可以使用逗号(,)连接。
|
||
expires_in | String | 访问令牌生命周期 |
表示访问令牌生命周期的秒数。<br>例如,“86400”表示自响应被授权服务器产生的时刻起,访问令牌将在24小时后过期;具体以实际返回值为准。
|
||
token_type | String | 认证类型 |
目前必为Bearer
|
请求示例
下面是“授权码模式”时,使用应用标识串和授权码串置换访问令牌的请求报文示例: POST /oauth2/oauth2/token HTTP/1.1 Host: open.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: open.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" }
错误返回示例
HTTP/1.1 400 bad request { "error": "invalid_usercredentials", "error_description": "用户凭据无效.","error_no”:”PUB:5190002”,”error_info”:”密码错误” }