所有 API 请求必须携带有效的 Bearer Token,Token 过期前应使用 refresh_token 续期,避免重新登录。
获取 OAuth Token
POST /gas/api/v1alpha1/oauth/token
使用客户端凭据和开放访问密钥换取初始访问令牌。首次接入或 refresh_token 失效时调用此接口。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| grant_type | string | 是 | 固定值: urn:gaussian:params:oauth:grant-type:open-access-token |
| client_id | string | 是 | 客户端标识符 |
| client_secret | string | 是 | 客户端密钥 |
| open_access_key | string | 是 | 开放访问密钥 |
口诀四要素认证:grant_type + 三凭据
响应参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| token_type | string | 令牌类型,固定值 bearer |
| access_token | string | 访问令牌,用于后续 API 请求的 Authorization 头 |
| expires_in | number | 令牌有效期(秒) |
| refresh_token | string | 刷新令牌,用于续期 |
口诀响应四字段:类型 + 令牌 + 有效期 + 刷新令牌
请求示例
{
"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_type | string | 是 | 固定值: refresh_token |
| refresh_token | string | 是 | 上次获取的刷新令牌 |
口诀刷新只需两个参数
响应参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| token_type | string | 令牌类型 |
| access_token | string | 新的访问令牌 |
| expires_in | number | 新令牌有效期(秒) |
| refresh_token | string | 新的刷新令牌 |
口诀响应结构与初始获取一致
请求示例
{
"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 自动续期无中断