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));