OAuth 客户端
OAuth 客户端用于为第三方系统创建接入凭证,是第三方应用通过 OAuth 2.0 访问平台资源的前提。
概述
从 开发中心 → 开发设置 → OAuth2.0 进入 OAuth 客户端管理页面。每个客户端代表一个接入方,包含一对 Client ID 与 Client Secret、允许的回调地址以及允许的权限范围。
使用流程:
- 在 OAuth 客户端页面点击新增,填写客户端名称、回调地址、过期时间与描述,系统生成
Client ID与Client Secret。 - 将
Client ID与Client Secret提供给第三方应用。 - 第三方应用 按 OAuth 2.0 接入流程 引导用户授权并换取访问令牌。
密钥只显示一次
Client Secret 仅在生成时显示,请及时妥善保存;如遗失只能重新生成(重新生成后旧密钥立即失效)。
配置项
| 配置项 | 说明 |
|---|---|
| 名称 | 客户端名称,必填 |
| Client ID | 客户端标识,创建后由系统生成,只读 |
| Client Secret | 客户端密钥,创建后由系统生成,列表中以 ****** 展示 |
| 回调地址 | 允许的回调地址(Redirect URI),一行一个,允许多个 |
| 权限范围 | 允许申请的权限范围(Scope),逗号分隔,当前不可编辑 |
| 过期时间 | 客户端过期时间,可选,过期后不可用 |
| 描述 | 客户端用途说明,可选 |
| 状态 | 启用(1)/ 停用(0),可在列表中直接切换 |
操作项
| 操作 | 说明 |
|---|---|
| 新增 | 创建客户端,生成 Client ID 与 Client Secret |
| 编辑 | 修改名称、回调地址、权限范围、过期时间与描述 |
| 重新生成密钥 | 为客户端重新生成 Client Secret,仅显示一次 |
| 启用 / 停用 | 通过状态开关启用或停用客户端 |
| 删除 | 删除客户端 |
| 查看详情 | 点击客户端名称打开详情抽屉 |
回调地址填法
新增与编辑时,回调地址按行为单位填写(换行分隔);提交时前端会自动拆分为数组。
下一步
- OAuth 2.0 接入 - 了解完整的授权码接入流程
- 构造网页授权链接 - 引导用户发起授权
- 获取访问令牌 - 使用授权码换取令牌
- 获取用户信息 - 使用令牌读取用户信息
属性与接口明细
以下内容面向技术实现与 AI 检索。
客户端实体属性
客户端存储在 system_oauthclient,实体类型为 OAuthClient,继承自 EntityBase。
| 属性名 | 类型 | 含义 | 取值/存储值 |
|---|---|---|---|
_id | string(GUID) | 主键 | 例:9f1c0b2e-... |
ClientId | string | 客户端标识 | 唯一索引,系统生成 |
ClientSecret | string | 客户端密钥 | 加密存储 |
ClientName | string | 客户端名称 | 显示名称 |
RedirectUris | string[] | 允许的回调地址列表 | 数据库列类型 text[] |
AllowedScopes | string[] | 允许的权限范围列表 | 数据库列类型 text[] |
Status | int | 状态 | 1 = 启用,0 = 停用,默认 1 |
ExpiredTime | datetime? | 过期时间 | 可空 |
Description | string | 描述 | 可空 |
存储示例
{
"_id": "9f1c0b2e-2d3a-4e6f-9c11-0f7a5b8d2e10",
"ClientId": "chm_3f2a1c...",
"ClientSecret": "********",
"ClientName": "CRM 系统接入",
"RedirectUris": [
"https://crm.example.com/callback"
],
"AllowedScopes": [
"userid",
"name",
"email",
"number"
],
"Status": 1,
"ExpiredTime": "2027-01-01T00:00:00",
"Description": "客户管理系统单点登录"
}
相关接口
| 接口 | 方法 | 说明 |
|---|---|---|
POST /api/OAuthClient/Add | POST | 新增客户端(ClientName、RedirectUris、AllowedScopes、ExpiredTime、Description) |
POST /api/OAuthClient/Edit | POST | 编辑客户端 |
POST /api/OAuthClient/Delete | POST | 删除客户端(参数 id) |
POST /api/OAuthClient/Enable | POST | 启用客户端(参数 id) |
POST /api/OAuthClient/Disable | POST | 停用客户端(参数 id) |
GET /api/OAuthClient/Get | GET | 获取客户端详情(参数 id) |
POST /api/OAuthClient/GetList | POST | 分页查询客户端列表 |
POST /api/OAuthClient/GenerateNewClientSecret | POST | 重新生成客户端密钥(参数 id,返回明文密钥) |
权限范围输入框
前端新增/编辑时权限范围输入框处于禁用状态,占位提示为 userid,name,email,number;编辑时展示该客户端已有的权限范围。提交时按逗号拆分为数组。