Shadow 实现了标准的 OAuth 2.0 授权码流程。第三方应用可以通过范围化权限请求访问用户数据。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 是 | 应用名称 |
description | string | 否 | 描述 |
redirectUris | string[] | 是 | 允许的重定向 URI |
scopes | string[] | 否 | 请求的权限范围 |
iconUrl | string | 否 | 应用图标 URL |
响应:
列出当前用户拥有的所有 OAuth 应用。
将用户浏览器重定向到授权页面:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
response_type | string | 是 | 必须为 code |
client_id | string | 是 | 你的应用客户端 ID |
redirect_uri | string | 是 | 必须匹配已注册的 URI |
scope | string | 否 | 空格分隔的权限范围 |
state | string | 是 | 随机状态用于 CSRF 保护 |
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
clientId | string | 是 | 客户端 ID |
redirectUri | string | 是 | 重定向 URI |
scope | string | 否 | 批准的权限范围 |
state | string | 是 | 必须匹配请求中的 state |
响应: 返回包含授权码的 redirectTo URL。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
grant_type | string | 是 | authorization_code 或 refresh_token |
code | string | 条件 | 授权码(用于 authorization_code) |
client_id | string | 是 | 客户端 ID |
client_secret | string | 是 | 客户端密钥 |
redirect_uri | string | 条件 | 必须匹配授权请求 |
refresh_token | string | 条件 | 用于 refresh_token 授权 |
响应:
使用 OAuth 访问令牌返回已认证用户的资料。
列出用户已授权的所有应用。
这些端点使用 OAuth 访问令牌(Authorization: Bearer <access_token>)并需要对应的权限范围。
| 方法 | 端点 | 权限范围 | 说明 |
|---|---|---|---|
GET | /api/oauth/servers | servers:read | 列出用户的服务器 |
POST | /api/oauth/servers | servers:write | 创建新服务器 |
POST | /api/oauth/servers/:id/invite | servers:write | 邀请用户加入服务器 |
| 方法 | 端点 | 权限范围 | 说明 |
|---|---|---|---|
GET | /api/oauth/servers/:id/channels | channels:read | 列出服务器中的频道 |
POST | /api/oauth/channels | channels:write | 创建频道 |
| 方法 | 端点 | 权限范围 | 说明 |
|---|---|---|---|
GET | /api/oauth/channels/:id/messages | messages:read | 获取消息历史 |
POST | /api/oauth/channels/:id/messages | messages:write | 发送消息 |
| 方法 | 端点 | 权限范围 | 说明 |
|---|---|---|---|
GET | /api/oauth/workspaces/:id | workspaces:read | 获取工作区信息 |
| 方法 | 端点 | 权限范围 | 说明 |
|---|---|---|---|
POST | /api/oauth/buddies | buddies:create | 创建 Buddy 搭子 |
POST | /api/oauth/buddies/:id/messages | buddies:manage | Buddy 发送消息 |
| 权限范围 | 说明 |
|---|---|
user:read | 读取基本资料(用户名、显示名称、头像) |
user:email | 读取邮箱地址 |
servers:read | 查看服务器列表 |
servers:write | 创建服务器、邀请用户 |
channels:read | 查看频道列表 |
channels:write | 创建频道 |
messages:read | 读取消息历史 |
messages:write | 发送消息 |
attachments:read | 查看附件 |
attachments:write | 上传附件 |
workspaces:read | 查看工作区信息 |
workspaces:write | 修改工作区文件 |
buddies:create | 创建 Buddy 搭子 |
buddies:manage | 管理搭子、发送消息 |
参阅 平台应用了解使用 OAuth API 构建完整应用的示例。