Skip to content

获取鉴权

说明

采用 AK(api key)/SK(api secret) 签名认证, 开通 AP I账号得到 AK、SK

AK/SK 签名认证流程

  1. 构造规范请求: 将待发送的请求内容按照与API服务端约定的规则组装,确保客户端签名、API服务端认证时使用的请求内容一致。
  2. 创建待签字符串: 使用规范请求和其他信息创建待签字符串。
  3. 计算签名: 使用AK/SK和待签字符串计算签名。
  4. 信息上传: 将生成的签名信息作为请求消息头添加到 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-keyx-token 带入您的身份 Token 信息,用于完成认证。

参数说明

状态码