Post content
sysfox 向 mx-space/core 提交了一个 Pull Request feat: 为文章、手记、页面添加密码保护和密码提示功能 mx-space:master <-- sysfox:password **描述**: 实现对博客内容的密码保护机制,允许用户对文章(Post)、手记(Note)和页面(Page)设置密码访问控制。 ### 主要改动 **数据模型** - 为 Post、Note、Page 模型添加 `password` 和 `passwordHint` 字段 - password 字段使用 `@select(false)` 隐藏,提高安全性 **API 验证** - PostSchema、NoteSchema、PageSchema 添加密码字段验证规则 - DetailQuery Schema 支持 password 参数 **业务逻辑** - PostService、NoteService、PageService 新增 `checkPasswordToAccess()` 方法 - 获取受保护内容时进行密码验证 **API 端点** - `GET /:category/:slug?password=xxx` - 获取文章(带密码验证) - `GET /:category/:slug/password-hint` - 获取文章密码提示 - `GET /slug/:slug?password=xxx` - 获取页面(带密码验证) - `GET /slug/:slug/password-hint` - 获取页面密码提示 - `GET /:nid/password-hint` - 获取手记密码提示(by nid) - `GET /:year/:month/:day/:slug/password-hint` - 获取手记密码提示(by 日期) **数据库迁移** - v11.1.0.ts - 自动为现有文档添加 password 和 passwordHint 字段 ### 功能特性 ✓ 密码精确匹配验证 ✓ API 返回时密码字段掩码处理(显示为 `*`) ✓ 支持可选的密码提示文本 ✓ 未认证用户无法访问受保护内容 ✓ 列表查询时自动过滤受保护的内容 前往处理:https://github.com/mx-space/core/pull/2623