Open API获取鉴权

更新于 2026-01-26

预装版通过 Open API 获取鉴权令牌,用于后续的 UI Iframe 嵌入。本文档介绍如何通过 AppKey 和 Secret 换取 accessToken,以及如何使用该令牌进行身份验证。

SDK接入流程图

接入方集成JSSDK业务流程图

流程说明:用户打开 JSSDK → 前端发起鉴权 → 服务端获取授权码 → 前端携带授权码请求 JSSDK → JSSDK 调用 API 获取数据 → 返回操作结果

开放平台账号

接入前需要准备以下信息:

接入方提供

内容 说明
企业名称 用于企业认证,需与营业执照一致
联系人信息 包括姓名、手机号、邮箱,用于接收重要通知
应用域名 用于配置域名白名单,确保 iframe 嵌入和跨域请求正常
IP 白名单(可选) 限制 API 调用来源,提升安全性

匠邦AI提供

内容 说明
AppKey 应用唯一标识,用于调用 API
Secret 应用密钥,用于签名验证(仅创建时显示一次)
API 文档 完整的接口文档和示例代码
技术支持 专属技术支持群,协助解决接入问题
⚠️

Secret 仅在创建应用时显示一次,请务必保存。如遗失需要重新生成,旧 Secret 将立即失效。

请求API

获取鉴权code

说明

接口地址 POST https://api.jbangai.com/open/v1/auth/code
Content-Type application/json
功能说明 使用 AppKey 和 Secret 获取鉴权 code,有效期 5 分钟

请求参数

参数名 类型 是否必传 参数说明
appKey string 应用 Key,在控制台获取
secret string 应用密钥,在控制台获取
timestamp long 当前时间戳(毫秒),用于防重放攻击
nonce string 随机字符串,用于防重放攻击

请求头

参数名 类型 是否必传 参数说明
Content-Type string 固定值:application/json
X-Request-Id string 请求唯一标识,用于问题排查

请求示例

curl -X POST https://api.jbangai.com/open/v1/auth/code \
  -H "Content-Type: application/json" \
  -d '{
    "appKey": "your_app_key",
    "secret": "your_secret",
    "timestamp": 1678886400000,
    "nonce": "abc123xyz"
  }'
const axios = require('axios');

const response = await axios.post('https://api.jbangai.com/open/v1/auth/code', {
  appKey: 'your_app_key',
  secret: 'your_secret',
  timestamp: Date.now(),
  nonce: Math.random().toString(36).slice(2)
}, {
  headers: { 'Content-Type': 'application/json' }
});

console.log(response.data);
import requests
import time
import random
import string

response = requests.post(
    'https://api.jbangai.com/open/v1/auth/code',
    json={
        'appKey': 'your_app_key',
        'secret': 'your_secret',
        'timestamp': int(time.time() * 1000),
        'nonce': ''.join(random.choices(string.ascii_letters, k=10))
    },
    headers={ 'Content-Type': 'application/json' }
)

print(response.json())

返回参数

参数名 类型 说明
code int 状态码,200 表示成功
message string 返回消息
data.authCode string 鉴权 code,用于换取 accessToken
data.expiresIn int 有效期(秒),默认 300 秒

响应示例

{
  "code": 200,
  "message": "success",
  "data": {
    "authCode": "auth_abc123def456ghi789",
    "expiresIn": 300
  }
}

使用code换取accessToken

说明

接口地址 POST https://api.jbangai.com/open/v1/auth/token
Content-Type application/json
功能说明 使用鉴权 code 换取 accessToken,用于后续业务 API 调用

请求参数

参数名 类型 是否必传 参数说明
authCode string 上一步获取的鉴权 code

返回参数

参数名 类型 说明
code int 状态码,200 表示成功
message string 返回消息
data.accessToken string 访问令牌,用于调用业务 API
data.expiresIn int 有效期(秒),默认 7200 秒
data.tokenType string 令牌类型,固定值 Bearer

响应示例

{
  "code": 200,
  "message": "success",
  "data": {
    "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "expiresIn": 7200,
    "tokenType": "Bearer"
  }
}
💡

accessToken 默认有效期 7200 秒(2小时)。建议在服务端缓存并在到期前刷新,避免频繁调用鉴权接口。

完整使用示例

以下是从获取 code 到使用 accessToken 的完整流程示例:

const axios = require('axios');

async function getAccessToken(appKey, secret) {
  // 步骤1: 获取鉴权code
  const codeResponse = await axios.post('https://api.jbangai.com/open/v1/auth/code', {
    appKey: appKey,
    secret: secret,
    timestamp: Date.now(),
    nonce: Math.random().toString(36).slice(2)
  });

  const authCode = codeResponse.data.data.authCode;

  // 步骤2: 使用code换取accessToken
  const tokenResponse = await axios.post('https://api.jbangai.com/open/v1/auth/token', {
    authCode: authCode
  });

  return tokenResponse.data.data.accessToken;
}

// 使用示例
getAccessToken('your_app_key', 'your_secret')
  .then(token => console.log('Access Token:', token))
  .catch(error => console.error('Error:', error));