OAuth 2.0 接入文档

通过 OAuth 2.0,第三方应用可以让用户授权访问其 EHXALI API Key,无需用户直接分享密钥。

授权流程

  1. 开发者在 EHXALI 创建 OAuth 应用,获取 client_idclient_secret
  2. 用户访问开发者应用时,跳转到授权页面
  3. 用户确认授权后,平台生成授权码并回调开发者地址
  4. 开发者使用授权码换取 access_token 和用户的 api_key
  5. 开发者使用 api_key 调用 EHXALI API

步骤详解

1. 创建应用

登录后进入 OAuth 应用管理,创建应用获取:

  • client_id:应用标识
  • client_secret:应用密钥(请妥善保存)

2. 发起授权请求

引导用户访问以下地址:

https://ai.hx12.top/oauth/authorize?
  client_id=YOUR_CLIENT_ID&
  redirect_uri=YOUR_REDIRECT_URI&
  response_type=code&
  scope=api&
  state=RANDOM_STATE
参数必填说明
client_id应用的 Client ID
redirect_uri回调地址,需与应用配置一致
response_type固定值 code
scope授权范围,默认 api
state推荐随机字符串,防止 CSRF

3. 用户授权后回调

用户同意授权后,平台会重定向到 redirect_uri,并携带授权码:

YOUR_REDIRECT_URI?code=AUTHORIZATION_CODE&state=RANDOM_STATE

4. 换取 Token

使用授权码换取 access_token 和 API Key:

curl -X POST https://ai.hx12.top/oauth/token \
  -H "Content-Type: application/json" \
  -d '{
    "grant_type": "authorization_code",
    "code": "AUTHORIZATION_CODE",
    "client_id": "YOUR_CLIENT_ID",
    "client_secret": "YOUR_CLIENT_SECRET",
    "redirect_uri": "YOUR_REDIRECT_URI"
  }'

响应示例:

{
  "access_token": "xxxxxxxx",
  "token_type": "Bearer",
  "expires_in": 86400,
  "refresh_token": "xxxxxxxx",
  "api_key": "sk-xxxxxxxx"
}

5. 使用 API Key

获取到 api_key 后,即可按照 API 文档 调用 EHXALI API。

获取用户信息

使用 access_token 获取用户信息:

curl https://ai.hx12.top/oauth/userinfo \
  -H "Authorization: Bearer ACCESS_TOKEN"

安全建议

  • client_secret 仅在服务端使用,不要暴露给前端
  • 使用 state 参数防止 CSRF 攻击
  • 验证回调中的 state 参数
  • 使用 HTTPS 保护所有通信
重要:获取的 api_key 关联用户账户,调用 API 将消耗用户余额。请合理使用。