# 认证鉴权
KIC使用JWT(RFC 7519) (opens new window) 进行接口认证鉴权,除了获取授权接口以外,所有接口在请求头内必须传递认证鉴权信息(Authorization)。Token的有效期一般为1小时。
# 依赖条件
认证授权是基于应用的,所以需要先注册并创建应用,每一个应用对应唯一的AppKey与AppSecret。
- 注册功夫智云SaaS平台账号,并登陆控制台。
- 创建应用并记录该应用的AppKey和AppSecret,用于获取授权Token。
注意
请妥善保管AppSecret秘钥,不可以将AppSecret保存在客户端或传递给客户端。
认证授权应当在服务端完成,如必须在客户端调用KIC接口,请将服务端获取到的Token传递给客户端使用。
Token是无状态的,多次调用获得的Token在过期时间内都是有效的。
# 认证流程
获取应用的AppKey和AppSecret。
调用获取授权接口,获得Token和有效期。
不要频繁获取Token,建议将Token进行缓存,直到接近过期时间或Token失效。
调用API时在Header中的Authorization字段传入当前有效的Token值。
完成请求调用。
如Token失效,重新获取Token。(建议在Token过期前重新获取。)
# 获取授权接口 API
POST /api/auth
- 请求参数(JSON Body):
名称 | 类型 | 必选 | 说明 |
---|---|---|---|
app_key | String | 是 | 应用的AppKey |
app_secret | String | 是 | 应用的AppSecret |
- 响应参数(JSON Body):
名称 | 类型 | 必选 | 说明 |
---|---|---|---|
code | Integer | 是 | 状态码 |
msg | String | 是 | 状态描述 |
data | Object | 否 | 响应数据 |
data.token | String | 否 | 鉴权token |
data.expires_at | Integer | 否 | token过期时间(单位:秒。达到过期时间之后,此Token自动失效) |
- 成功示例:
HTTP Status 200
{
"code": 0,
"msg": "ok",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBfa2V5IjoicWFVN1ZmMzZaemlpIiwiZXhwIjoxNjI3OTExNDIzLCJpc3MiOiJLSUMifQ.eb6V-Ir-qvQs2v0kNOIFZwUn_qgmEG1vyKS29LwLXog",
"expires_at": 1627911423
}
}
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
- 失败示例:
HTTP Status 401
{
"code": 20004,
"msg": "授权失败",
"data": null
}
1
2
3
4
5
2
3
4
5