Skip to content
开始使用

认证方式

就一件必须做对的事 ​

每个请求都要带上你的 API Key,放在 Authorization 头里:

http
Authorization: Bearer sk-你的APIKey

格式错一个字符就会 401,最常见的三个错误:

错误写法问题
Authorization: sk-xxx少了 Bearer 前缀
Authorization: Bearer: sk-xxx多了个冒号
Authorization: Bearersk-xxxBearer 和 Key 之间少了一个空格

正确格式是:Bearer + 一个空格 + Key。

有些接口也认别的写法 ​

Authorization: Bearer 是通用方式,所有接口都认。但少数接口为了兼容特定生态,额外接受其他写法——你从别处抄来的配置大概率能直接用:

接口额外接受的写法
/v1/messages(Anthropic 协议)x-api-key: sk-你的APIKey
Gemini 协议(/v1beta/models/...)x-goog-api-key: sk-你的APIKey,或 URL 参数 ?key=sk-你的APIKey
WebSocket 实时语音密钥放进 Sec-WebSocket-Protocol(浏览器只能这么传,见 实时会话)

拿不准就用 Bearer

除实时语音外,Authorization: Bearer 在所有接口上都能用。上面这些只是"额外兼容",不是"必须这样写"。

Key 从哪来 ​

到 https://api.wxiai.com/token 新建。新建时默认设置就能用,不需要额外配置。

把 Key 放在哪里 ​

放在服务端。 这是唯一安全的做法。

场景正确做法危险做法
后端服务环境变量 / 配置中心 / 密钥管理服务硬编码在源码里提交到 Git
本地开发.env 文件,并写进 .gitignore直接写在代码常量里
桌面客户端客户端自己的配置项打包进安装包分发
网页前端没有安全做法任何写在前端 JS 里的 Key 都等于公开

前端直连会泄露 Key。浏览器里的代码用户能直接看到,也能在网络面板里看到请求头。如果必须让网页调用,请在你的后端做一层转发——前端调你的后端,你的后端拿 Key 去调我们。

用环境变量(推荐) ​

bash
# 写入环境变量,不要写进命令历史
export WXIAI_API_KEY="sk-你的APIKey"

curl https://api.wxiai.com/v1/chat/completions \
  -H "Authorization: Bearer $WXIAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"grok-4.6","messages":[{"role":"user","content":"你好"}]}'
python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["WXIAI_API_KEY"],   # 从环境变量读,不写死在代码里
    base_url="https://api.wxiai.com/v1",
)

多把 Key 怎么分 ​

建议按用途拆开,好处是能单独查看用量、单独停用,一把泄露不会牵连全部:

  • 按环境拆:开发 / 测试 / 生产各一把。
  • 按服务拆:不同的应用、不同的项目各一把。
  • 按人拆:团队成员各自一把,离职直接停用。

Key 泄露了怎么办 ​

  1. 立刻到 https://api.wxiai.com/token 把那一把删除(不是改名,是删除)。
  2. 新建一把替换掉。
  3. 检查账单,看有没有异常调用。

认证失败排查顺序 ​

  1. Authorization 头的格式对不对(Bearer + 一个空格)。
  2. Key 是不是复制时漏了字符,或者已经被删了。
  3. 请求地址是不是 https://api.wxiai.com,有没有写错域名。
  4. 如果你经过了自己的网关、Nginx 或反向代理,确认它没有丢掉 Authorization 头(这是很常见的一个坑)。

下一步 ​

基于 Apache-2.0 许可发布