所有 API 请求必须携带有效的 Bearer Token,Token 过期前应使用 refresh_token 续期,避免重新登录。


获取 OAuth Token

POST /gas/api/v1alpha1/oauth/token

使用客户端凭据和开放访问密钥换取初始访问令牌。首次接入或 refresh_token 失效时调用此接口。

请求参数

参数名类型必填说明
grant_typestring固定值: urn:gaussian:params:oauth:grant-type:open-access-token
client_idstring客户端标识符
client_secretstring客户端密钥
open_access_keystring开放访问密钥
口诀四要素认证:grant_type + 三凭据

响应参数

参数名类型说明
token_typestring令牌类型,固定值 bearer
access_tokenstring访问令牌,用于后续 API 请求的 Authorization 头
expires_innumber令牌有效期(秒)
refresh_tokenstring刷新令牌,用于续期
口诀响应四字段:类型 + 令牌 + 有效期 + 刷新令牌

请求示例

{
  "grant_type": "urn:gaussian:params:oauth:grant-type:open-access-token",
  "client_id": "your_client_id",
  "client_secret": "your_client_secret",
  "open_access_key": "your_open_access_key"
}

响应示例

{
  "token_type": "bearer",
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
  "expires_in": 7200,
  "refresh_token": "dGhpcyBpcyBhIHJlZnJlc2ggdG9rZW4..."
}

刷新 OAuth Token

POST /gas/api/v1alpha1/oauth/token

使用刷新令牌获取新的访问令牌。建议在 access_token 过期前提前调用(如提前 5 分钟),避免请求中断。

请求参数

参数名类型必填说明
grant_typestring固定值: refresh_token
refresh_tokenstring上次获取的刷新令牌
口诀刷新只需两个参数

响应参数

参数名类型说明
token_typestring令牌类型
access_tokenstring新的访问令牌
expires_innumber新令牌有效期(秒)
refresh_tokenstring新的刷新令牌
口诀响应结构与初始获取一致

请求示例

{
  "grant_type": "refresh_token",
  "refresh_token": "dGhpcyBpcyBhIHJlZnJlc2ggdG9rZW4..."
}

响应示例

{
  "token_type": "bearer",
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
  "expires_in": 7200,
  "refresh_token": "bmV3IHJlZnJlc2ggdG9rZW4..."
}

最佳实践

推荐做法
  • 在 Token 过期前 5 分钟主动刷新,避免请求失败
  • 安全存储 client_secret 和 open_access_key,不要硬编码在前端代码中
  • 每次刷新后立即保存新的 refresh_token
  • 在 HTTP 请求头中以 Authorization: Bearer <access_token> 格式携带令牌
不推荐
  • 不要在 access_token 未过期时频繁调用获取接口
  • 不要将凭据暴露在客户端或日志中
  • 不要忽略 refresh_token 的更新,使用旧 token 会导致认证失败
常见误区
  • grant_type 拼写错误会导致 400 错误
  • refresh_token 过期后必须重新走完整的初始认证流程
  • 并发刷新可能导致 token 竞争,建议加锁串行处理

认证流程稳定运行,Token 自动续期无中断