获取鉴权
说明
采用 AK(api key)/SK(api secret) 签名认证, 开通 AP I账号得到 AK、SK
AK/SK 签名认证流程
构造规范请求
: 将待发送的请求内容按照与API服务端约定的规则组装,确保客户端签名、API服务端认证时使用的请求内容一致。创建待签字符串
: 使用规范请求和其他信息创建待签字符串。计算签名
: 使用AK/SK和待签字符串计算签名。信息上传
: 将生成的签名信息作为请求消息头添加到 HTTP 请求中。
1.构造规范请求
使用AK/SK方式进行签名与认证,首先需要规范请求内容,然后再进行签名。客户端与API服务端使用相同的请求规范,可以确保同一个HTTP请求的前后端得到相同的签名结果,从而完成身份校验。
- HttpRequestMethod:HTTP 请求方法,如 GET、POST。
- ApiUri:请求资源路径,以 "/" 开头,并以 "/" 结尾,如果URI路径不以 "/" 结尾,则在尾部添加 "/" 如:/api/grant/code 需要变为 /api/grant/code/
- Timestamp: 请求的时间戳,单位秒。
2.创建待签字符串
伪代码: 各个参数之间用 "@" 隔开 stringToSign = HttpRequestMethod + "@" + ApiUri + "@" + Timestamp。
- 示例(token): stringToSign = GET@/api/grant/token/@1696821929
- 示例(code): stringToSign = GET@/api/grant/code/@1696821929
3.计算签名
使用SK
和创建好的待签字符串
进行Hmac sha1 计算得到签名值 ,然后再做 base64_encode,计算得到最终签名值。 加密结果如:MipstvjcmFP20jd3WUCYvhYvzVE=
4.信息上传
ts
请求示例
GET https://co.aippt.cn/api/grant/code?uid=1&channel=
Header: x-api-key:645e1231d1ba5
Header: x-timestamp:1696821929
Header: x-signature:ACsZ2tral4zHq5opRIAgsxC1nOg=
获取认证TOKEN
业务流程图
描述
接口描述 | token有效期目前是30天,建议接入方服务端缓存并跟踪 x-token 的过期时间并及时更新,避免频繁调用。 token 颗粒度是用户级别的,即:接入方下的每一个用户的 x-token 都不同。 | ||
接口地址 | /api/grant/token | 请求方式 | GET |
权限校验 | 是 | 请求参数 | json |
请求参数
请求示例
ts
curl --location 'https://co.aippt.cn/api/grant/token?uid=1&channel=xxx' \
--header 'x-api-key: 645e1231d1ba5' \
--header 'x-timestamp: 1696821929' \
--header 'x-signature: Uf1UYWp45y0deQ9/eS1CCDQXqJ8='
响应内容
响应示例
ts
{
"code": 0,
"data": {
"api_key": "xxxx",
"uid": "123",
"token": "xxxx",
"time_expire": 2592000
},
"msg": "ok"
}
获取认证Code
业务流程图
描述
接口描述 | 第三方用户在前端打开Iframe时,需要通过第三方服务端调用AIPPT API接口申请访问的授权码(x-code)。第三方拿到授权码(x-code)后,需要把授权码(x-code)传入 AIPPT JSSDK | ||
接口地址 | /api/grant/code | 请求方式 | GET |
权限校验 | 是 | 请求参数 | json |
请求参数
请求示例
ts
curl --location 'https://co.aippt.cn/api/grant/code?uid=1&channel=xxx' \
--header 'x-api-key: 645e1231d1ba5' \
--header 'x-timestamp: 1696821929' \
--header 'x-signature: S52ihSWntQ317tSIR4EEfGLL9FY=' \
响应内容
响应示例
{
"code": 0,
"data": {
"api_key": "645e1231d1ba5",
"uid": "1",
"code": "429738a59f91d6977843fd1c893bc66b",
"time_expire": 86400
},
"msg": "ok"
}
【注意】身份认证
AiPPT 所有的开放 API 都需要在请求的HTTP Headers
传入x-api-key
与x-token
带入您的身份 Token 信息,用于完成认证。