主题
API授权 
授权说明 
授权模式 
使用凭证式(client credentials)授权模式。
授权模式流程说明 
 第一步,A 应用在命令行向 B 发出请求。 第二步,B 网站验证通过以后,直接返回令牌。
授权模式结构说明 
接口说明 
获取access_token 
获取access_token。开发者需要缓存access_token,用于后续接口的调用。当access_token失效或过期时,需要重新获取。
请求URL 
http
GET /api/oauth2/server/tokens?grant_type=client_credentials&client_id=${CLIENT_ID}&client_secret=${CLIENT_SECRET} HTTP/1.1
Accept: application/jsonURL 参数 
| 字段 | 类型 | 是否必须 | 描述 | 
|---|---|---|---|
| grant_type | STRING | 是 | 授权类型,固定值 :client_credentials。表示采用凭证式 | 
| client_id | STRING | 是 | 客户端id | 
| client_secret | STRING | 是 | 客户端secret | 
返回对象的格式说明 
| 字段 | 类型 | 说明 | 
|---|---|---|
| access_token | STRING | access_token | 
| token_type | STRING | 固定值 "bearer" | 
| expires_in | STRING | 有效时间,单位为秒,默认为12小时 | 
| scope | STRING | 授权作用域,目前只支持 "sudo" | 
校验access_token 
校验access_token
请求URL 
http
GET /api/oauth2/server/tokens/check?token=${ACCESS_TOKEN} HTTP/1.1URL 参数 
| 字段 | 类型 | 是否必须 | 描述 | 
|---|---|---|---|
| token | STRING | 是 | 需较验的 access_token | 
返回对象的格式说明 
| 字段 | 类型 | 说明 | 
|---|---|---|
| access_token | STRING | access_token | 
| token_type | STRING | 固定值 "bearer" | 
| expires_in | STRING | 有效时间,单位为秒 | 
| scope | STRING | 授权作用域,目前只支持 "sudo" | 
撤销access_token 
撤销access_token
请求URL 
http
GET /api/oauth2/server/tokens/revoke?token=${ACCESS_TOKEN} HTTP/1.1URL 参数 
| 字段 | 类型 | 是否必须 | 描述 | 
|---|---|---|---|
| token | STRING | 是 | 待撤销的 access_token | 
返回对象的格式说明 
| 字段 | 类型 | 说明 | 
|---|---|---|
| code | INTEGER | 0 为成功,其它值为失败 | 
| msg | STRING | 操作结果 | 
access_token及sudo说明 
access_token 
在Header中携带 
http
GET /api/{URI} HTTP/1.1
Authorization:Bearer ${ACCESS_TOKEN}拼接在url中作为Query String Parameter的一部分 
http
GET /api/{URI}?access_token=${ACCESS_TOKEN} HTTP/1.1sudo 
设置sudo 
sudo拼接在url中作为requestParam,sudo支持通过用户的id、loginName(登录名)、email(邮箱)、mobile(手机)传递用户身份。 以下四种sudo格式为:
- sudo=uid:${UID}
 - sudo=loginName:${LOGIN_NAME}
 - sudo=email:${EMAIL}
 - sudo=mobile:${MOBILE}
 
注意
sudo=username:${LOGIN_NAME} (不推荐使用)
http
GET /api/{URI}?access_token=${ACCESS_TOKEN}&sudo=uid:${UID} HTTP/1.1设置租户 
如果想使用sudo 功能,操作租户的数据,则要传递 tenantId 或者 tenantCode
http
GET /api/{URI}?access_token=${ACCESS_TOKEN}&sudo=uid:${UID}&tenantId=${tenantId} HTTP/1.1或
http
GET /api/{URI}?access_token=${ACCESS_TOKEN}&sudo=uid:${UID}&tenantCode=${tenantCode} HTTP/1.1