接口认证
# 接口认证
智齿开放接口在基于 Json Web Toke(JWT) 基础上实现标准的 API 进行授权访问的机制,满足用户安全设置的需求。
# 基本流程及使用说明
流程上是这样的:
- 客户端使用 appKey、appSecret 来请求服务器
- 服务器进行验证认证的信息
- 服务器通过验证发送给用户 access_token
- 客户端存储 access_token;
- 并在每次请求时附送上这个 access_token 值 (存在 head 里的参数 Authorization)
- 服务端验证 access_token 值,并返回数据
- access_token 在申请后会携带超时时间,客户端应该在 access_token 超时时间过半时重新获取 token。
- 如果服务器验证 access_token 过期, 返回 status 401
# 公司级授权接口
# ● 公司 token 接口定义
公司级 token 用于访问 HTTP 开放接口 请求获取 token
https://openapi.soboten.com/tokens/company
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
responseType | String | 是 | 请求的jwt类型,目前仅可使用:token |
appId | String | 是 | 用户唯一标识 |
currentTime | Long | 是 | 当前服务器时间(时间戳(毫秒),例如:2022-06-25 15:49:33 的时间戳 1656143373000) |
sign | String | 是 | 签名 ,计算方法为 MD5(app_id+current_time+response_type+app_secret) |
请求示例
curl -X post https://openapi.soboten.com/tokens/company -D
'{\
"responseType":"token",\
"appId":"b86fc8142f784bfb9215d45df64a17ea",\
"currentTime":"1627462929415",\
"sign":"fdf6066cfc12e73d7ebc571235c8be45"\
}'
1
2
3
4
5
6
7
2
3
4
5
6
7
成功时返回
{
"response_type":"token",
"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0ODUxNDA5ODQsImlhdCI6MTQ4NTEzNzM4NCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiIyOWFjMGMxOC0wYjRhLTQyY2YtODJmYy0wM2Q1NzAzMThhMWQiLCJhcHBsaWNhdGlvbklkIjoiNzkxMDM3MzQtOTdhYi00ZDFhLWFmMzctZTAwNmQwNWQyOTUyIiwicm9sZXMiOltdfQ.Mp0Pcwsz5VECK11Kf2ZZNF_SMKu5CgBeLN9ZOP04kZo",
"expires_in": 86400000,
"realm":"third",
"domain":"sobot"
}
1
2
3
4
5
6
7
2
3
4
5
6
7
失败时返回
{
"code": 400,
"error_desc":"invalid params"
}
1
2
3
4
2
3
4
# ● 使用access_token
对智齿所有对外的 API 都需要增加 HTTP Authorization header。 范例如下:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0ODUxNDA5ODQsImlhdCI6MTQ4NTEzNzM4NCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiIyOWFjMGMxOC0wYjRhLTQyY2YtODJmYy0wM2Q1NzAzMThhMWQiLCJhcHBsaWNhdGlvbklkIjoiNzkxMDM3MzQtOTdhYi00ZDFhLWFmMzctZTAwNmQwNWQyOTUyIiwicm9sZXMiOltdfQ.Mp0Pcwsz5VECK11Kf2ZZNF_SMKu5CgBeLN9ZOP04kZo
1
# ● 错误编码
Status | Message | Description |
---|---|---|
400 | invalid params | 获取token是非法的参数 |
401 | Unauthorized | 无效的token |
403 | Forbidden | 非法的请求资源 |
# 坐席级授权接口
# ● 坐席token接口定义
坐席级 token 用于 JSSDK 及 UISDK 请求获取 token
https://openapi.soboten.com/tokens/agent
请求参数:
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
responseType | String | 是 | 请求的jwt类型,目前仅可使用:token |
appId | String | 是 | 用户唯一标识 |
currentTime | Long | 是 | 当前服务器时间(时间戳(毫秒),例如:2022-06-25 15:49:33 的时间戳 1656143373000) |
sign | String | 是 | 签名 ,计算方法为 MD5(app_id+current_time+response_type+app_secret) |
agentId | String | 否 | 坐席id |
agentNo | String | 否 | 坐席工号 |
注意:接口的参数中agentId与agentNumber中至少必须存在一个,当存在agentId时,agentNumber无效。 请求示例
curl -X post https://openapi.soboten.com/tokens/company -D
'{\
"responseType":"token",\
"appId":"b86fc8142f784bfb9215d45df64a17ea",\
"currentTime":"1627462929415",\
"sign":"fdf6066cfc12e73d7ebc571235c8be45",\
"agentNo":"1008"
}'
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
成功时返回
{
"response_type":"token",
"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0ODUxNDA5ODQsImlhdCI6MTQ4NTEzNzM4NCwiaXNzIjoiYWNtZS5jb20iLCJzdWIiOiIyOWFjMGMxOC0wYjRhLTQyY2YtODJmYy0wM2Q1NzAzMThhMWQiLCJhcHBsaWNhdGlvbklkIjoiNzkxMDM3MzQtOTdhYi00ZDFhLWFmMzctZTAwNmQwNWQyOTUyIiwicm9sZXMiOltdfQ.Mp0Pcwsz5VECK11Kf2ZZNF_SMKu5CgBeLN9ZOP04kZo",
"expires_in": 86400000,
"realm":"third",
"domain":"sobot"
}
1
2
3
4
5
6
7
2
3
4
5
6
7
失败时返回
{
"errcode": 400,
"error_desc":"invalid params"
}
1
2
3
4
2
3
4
# ● 使用坐席级token
JSSDK使用坐席级token见 javascript-sdk api设计
UISDK使用坐席级token见 ui-sdk api设计
上次更新: 2022/7/1 上午2:04:12