Skip to Content
Server IntegrationAuthentication

Authentication

AvatarGo 有两种凭据,分别给你应用的两端:

谁拿着能做什么有效期
API key(ar_sk_…)你的服务器API 为你的账户提供的一切直到你吊销它
Session token终端用户的浏览器加入一通会话一小时,一通会话

你的服务器用 API key 创建会话,拿回一个 session token;交给页面的只有这个 token。见 会话怎么建立。

API key

在 AvatarGo 控制台 里创建:打开 API Keys,按 Create key,起一个能看出用在哪里的名字 (比如「production server」)。key 只显示这一次:当场复制。之后列表里显示每个 key 的名字、开头几个字符、创建时间和最后一次使用的时间。

每个请求都在 Authorization 请求头里带上它:

curl https://api.avatargo.ai/v1/avatar-models \ -H "Authorization: Bearer $AVATARGO_API_KEY"
  • 只放在你的服务器上。 key 对你账户的 API 有完整权限:拿到它的人可以用你的名义创建会话。永远不要把它放进网页、移动应用或代码仓库; 放在环境变量或你的密钥管理里。
  • 一处一个 key——生产服务器、测试环境、某个脚本——这样吊销其中一个不影响其他。
  • 不再使用或可能泄露时,在控制台吊销它(那一行的 Revoke)。从下一个请求起它就失效;它仍留在列表里,标为已吊销。
  • 有几件事只能在控制台里做,不能用 key,这样泄露的 key 做不了这些:创建和吊销 API key、管理 webhook 接收地址,以及付款——充值、套餐、 自动充值和保存的卡。用 key 调这些会返回 403 forbidden。

缺少 key、key 不存在或已吊销,返回 401 unauthorized(不说是哪一种)。账户被暂停时返回 403 forbidden。

Session token

你的服务器用 API key 调用 POST /v1/auth/session-token,创建一通会话,并返回它的 sessionToken。把这个 token 交给终端用户的页面, 页面用它加入:JavaScript SDK 里的 createClient(sessionToken)。

  • 它可以放心交给浏览器:它只对应一通会话,既不含你的 key,也不含角色的设置。
  • 有效期一小时,且只对它那通会话有效。会话还在进行时,用同一个 token 再加入会回到这通会话;会话结束后,token 会被拒绝(410 session_ended)。
  • 只在浏览器需要的地方被接受——加入会话、接通期间显示的数字人照片、结束会话。其他一切都要用你的 API key。
  • 每一通通话,新建一通会话和一个新 token。