系统设置迁入后台:站点地址 / OAuth 凭据 / R2 存储 / 管理员账号,保存即生效无需重启
- 生效规则统一为「后台填了用后台的,没填回落环境变量」,老部署不改 env 照常跑 - config.Resolver:短缓存解析有效配置,存储后端按配置签名热重建;后台保存主动失效 - 秘密项(client secret / bot token / R2 密钥 / 管理员密码)接口永不回显明文, 只报「是否已配置、来自哪里」;留空保存 = 保持现值 - 管理员密码 bcrypt 入库,DB 哈希优先、显式设置的 env 密码作解锁后路; 后台改过密码后 admin/admin 开发模式立即失效 - 设置页新增「登录与存储」标签,基础信息加站点地址;秘密项带来源提示 - 监听地址 / 数据库 / 目录 / ONE_SECRET / Passkey 仍留环境变量(启动期依赖)
This commit is contained in:
1 parent
bf3ce934dd
commit
e68400b389
23 files changed
+957
-126
No files matched your search
@@ -0,0 +1,49 @@
|
||||
// 有效配置与登录方式的取用口。OAuth / Telegram 凭据迁移进后台系统设置后
|
||||
// 不再是启动期常量:每次请求按「DB 设置叠加 env」现算(Res.Config 自带
|
||||
// 短缓存),后台改完凭据不用重启就生效。
|
||||
package api
|
||||
|
||||
import (
|
||||
"oneblog/internal/auth"
|
||||
"oneblog/internal/config"
|
||||
"oneblog/internal/storage"
|
||||
)
|
||||
|
||||
// cfg 返回当前请求应使用的有效配置。
|
||||
func (a *API) cfg() *config.Config {
|
||||
if a.Res != nil {
|
||||
return a.Res.Config()
|
||||
}
|
||||
return a.Cfg
|
||||
}
|
||||
|
||||
// blobs 返回当前存储后端(Res 存在时支持后台改配置热重建)。
|
||||
func (a *API) blobs() storage.BlobStore {
|
||||
if a.Res != nil {
|
||||
if b := a.Res.Blobs(); b != nil {
|
||||
return b
|
||||
}
|
||||
}
|
||||
return a.blobs()
|
||||
}
|
||||
|
||||
// 三个读者登录方式。凭据为空时 Enabled() 为 false,相关端点自动 404。
|
||||
func (a *API) gh() auth.GitHub {
|
||||
c := a.cfg()
|
||||
return auth.GitHub{ClientID: c.GitHubClientID, ClientSecret: c.GitHubClientSecret}
|
||||
}
|
||||
|
||||
func (a *API) gg() auth.Google {
|
||||
c := a.cfg()
|
||||
return auth.Google{ClientID: c.GoogleClientID, ClientSecret: c.GoogleClientSecret}
|
||||
}
|
||||
|
||||
func (a *API) tg() auth.Telegram {
|
||||
c := a.cfg()
|
||||
return auth.Telegram{Bot: c.TelegramBot, Token: c.TelegramToken}
|
||||
}
|
||||
|
||||
// siteURL 去掉尾部斜杠的站点地址(OAuth 回调、RSS 链接的拼装基座)。
|
||||
func (a *API) siteURL() string {
|
||||
return a.cfg().SiteURL
|
||||
}
|
||||
Reference in new issue
Block a user