评论阶段二:GitHub OAuth 登录 + 评论表/用户表 + 先审后显开关 + 禁言 + 后台评论管理页
- auth 包:读者会话(one_reader,与后台令牌互斥)+ GitHub OAuth 客户端;Verify 校验 HMAC 与 reader: 前缀 - 公开 API:auth 五端点、评论列表(顶层可见+自己待审、回复内嵌)、发表(登录/禁言/开关/500 字校验)、10 分钟编辑窗、软删墓碑 - 管理端:评论列表(待审/已通过/全部)、通过、软删、读者列表、禁言切换 - 前台:登录卡/禁言卡;后台:评论管理页 + 设置页审核开关
This commit is contained in:
@@ -147,6 +147,8 @@ async function load() {
|
||||
settings.value.ui_id = UI_CONSTANTS.DEFAULT
|
||||
}
|
||||
socialText.value = socialToText(settings.value.social_links)
|
||||
settings.value.comments_enabled = !!settings.value.comments_enabled
|
||||
settings.value.comments_review = !!settings.value.comments_review
|
||||
// 服务端保证非 null,这里再兜一层,并预建分区键,
|
||||
// 这样 v-model 绑定的文本框一开始就有值可写。
|
||||
if (!settings.value.custom_css || typeof settings.value.custom_css !== 'object') {
|
||||
@@ -382,6 +384,17 @@ async function save() {
|
||||
<label>ICP 备案号</label>
|
||||
<input v-model="settings.icp" class="input" spellcheck="false" placeholder="如 京 ICP 备 12345678 号" />
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>评论</label>
|
||||
<label style="display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--admin-ink); cursor: pointer;">
|
||||
<input v-model="settings.comments_enabled" type="checkbox" />
|
||||
开放评论(关着时前台整个评论区不渲染)
|
||||
</label>
|
||||
<label style="display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--admin-ink); cursor: pointer; margin-top: 6px;">
|
||||
<input v-model="settings.comments_review" type="checkbox" />
|
||||
新评论需审核,通过后公开
|
||||
</label>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>社交链接(每行一条:名称 | 链接)</label>
|
||||
<textarea
|
||||
|
||||
Reference in New Issue
Block a user