feat(admin): 添加管理员评论密钥功能和安全设置

- 在管理后台添加管理员评论密钥设置,前台管理员评论需验证
- 新增安全设置区块,包含允许调用域名和管理员密钥配置
- 更新相关API文档和前端配置说明
- 调整评论配置接口返回字段,增加密钥相关字段
This commit is contained in:
anghunk
2026-01-20 17:06:33 +08:00
parent 5fdbc5077b
commit 23c27d9562
6 changed files with 54 additions and 21 deletions

View File

@@ -432,7 +432,7 @@ Token 通过登录接口获取,有效期为 24 小时。
## GET /admin/settings/comments
获取评论配置,例如博主邮箱、徽标头像前缀等。
获取评论配置,例如博主邮箱、徽标头像前缀、管理员密钥等。
- 方法:`GET`
- 路径:`/admin/settings/comments`
@@ -448,11 +448,23 @@ Token 通过登录接口获取,有效期为 24 小时。
"adminBadge": "博主",
"avatarPrefix": "https://gravatar.com/avatar",
"adminEnabled": true,
"allowedDomains": []
"allowedDomains": [],
"adminKey": "your-admin-key",
"adminKeySet": true
}
```
字段说明公开接口 `/api/config/comments` 一致。
字段说明(相比公开接口 `/api/config/comments` 增加了管理员密钥相关字段):
| 字段名 | 类型 | 说明 |
| -------------- | ------- | -------------------------------------------------------- |
| `adminEmail` | string | 博主邮箱地址,用于显示“博主”标识以及管理员身份验证 |
| `adminBadge` | string | 博主标识文字,例如 `"博主"` |
| `avatarPrefix` | string | 头像地址前缀,如 Gravatar 或 Cravatar 镜像地址 |
| `adminEnabled` | boolean | 是否启用博主标识相关展示 |
| `allowedDomains` | Array\<string\> | 允许调用组件的域名列表,留空则不限制 |
| `adminKey` | string\|null | 管理员评论密钥(明文),仅通过管理后台接口返回 |
| `adminKeySet` | boolean | 是否已经设置过管理员评论密钥 |
### 错误响应
@@ -486,19 +498,21 @@ Token 通过登录接口获取,有效期为 24 小时。
"adminBadge": "站长",
"avatarPrefix": "https://cravatar.cn/avatar",
"adminEnabled": true,
"allowedDomains": []
"allowedDomains": [],
"adminKey": "your-admin-key"
}
```
字段说明:
| 字段名 | 类型 | 必填 | 说明 |
| ---------------- | ------- | ---- | ---------------------------------------------- |
| `adminEmail` | string | 否 | 博主邮箱地址,需为合法邮箱 |
| `adminBadge` | string | 否 | 博主标识文字,例如 `"博主"` |
| `avatarPrefix` | string | 否 | 头像地址前缀,如 Gravatar 或 Cravatar 镜像地址 |
| `adminEnabled` | boolean | 否 | 是否启用博主标识相关功能 |
| `allowedDomains` | Array | 否 | 是否允许前端调用的域名 |
| 字段名 | 类型 | 必填 | 说明 |
| ---------------- | ------- | ---- | -------------------------------------------------------------------- |
| `adminEmail` | string | 否 | 博主邮箱地址,需为合法邮箱 |
| `adminBadge` | string | 否 | 博主标识文字,例如 `"博主"` |
| `avatarPrefix` | string | 否 | 头像地址前缀,如 Gravatar 或 Cravatar 镜像地址 |
| `adminEnabled` | boolean | 否 | 是否启用博主标识相关展示 |
| `allowedDomains` | Array | 否 | 允许前端调用组件的域名列表 |
| `adminKey` | string | 否 | 管理员评论密钥,留空则表示清除密钥;设置后前台管理员评论需输入密钥 |
### 成功响应

View File

@@ -112,7 +112,7 @@
"post_slug": "https://example.com/blog/hello-world",
"post_title": "博客标题,可选",
"post_url": "https://example.com/blog/hello-world",
"author": "张三",
"name": "张三",
"email": "zhangsan@example.com",
"url": "https://zhangsan.me",
"content": "很棒的文章!",
@@ -127,7 +127,7 @@
| `post_slug` | string | 是 | 文章唯一标识符,应与前端组件初始化时的 `postSlug` 值一致,`window.location.origin + window.location.pathname` |
| `post_title` | string | 否 | 文章标题,用于邮件通知内容 |
| `post_url` | string | 否 | 文章 URL用于邮件通知中的跳转链接 |
| `author` | string | 是 | 评论者昵称 |
| `name` | string | 是 | 评论者昵称 |
| `email` | string | 是 | 评论者邮箱,需为合法邮箱格式 |
| `url` | string | 否 | 评论者个人主页或站点地址 |
| `content` | string | 是 | 评论内容,内部会过滤 `<script>...</script>` 片段 |
@@ -237,18 +237,20 @@
"adminEmail": "admin@example.com",
"adminBadge": "博主",
"avatarPrefix": "https://gravatar.com/avatar",
"adminEnabled": true
"adminEnabled": true,
"allowedDomains": []
}
```
字段说明:
| 字段名 | 类型 | 说明 |
| -------------- | ------- | ------------------------------------------------ |
| `adminEmail` | string | 博主邮箱地址,用于在前端展示“博主”标识 |
| `adminBadge` | string | 博主标识文字,例如 `"博主"` |
| `avatarPrefix` | string | 头像地址前缀,如 Gravatar 或 Cravatar 镜像地址 |
| `adminEnabled` | boolean | 是否启用博主标识相关功能 |
| 字段名 | 类型 | 说明 |
| -------------- | ------- | -------------------------------------------------------------------- |
| `adminEmail` | string | 博主邮箱地址,用于在前端展示“博主”标识,并触发管理员身份验证流程 |
| `adminBadge` | string | 博主标识文字,例如 `"博主"` |
| `avatarPrefix` | string | 头像地址前缀,如 Gravatar 或 Cravatar 镜像地址 |
| `adminEnabled` | boolean | 是否启用博主标识相关展示(关闭时不显示徽标,但仍可作为管理员邮箱) |
| `allowedDomains` | Array\<string\> | 允许调用组件的域名列表,留空则不限制 |
### 错误响应