From b1357632808e606155ee1f77f63db77dbc4a6ac3 Mon Sep 17 00:00:00 2001 From: duorameng <2997944583@qq.com> Date: Tue, 16 Jun 2026 16:26:52 +0800 Subject: [PATCH] feat: add support for custom cookie name via config to avoid multi-instance conflicts --- README.md | 3 +++ configs/config.example.ini | 2 ++ docs/guide/configuration.md | 3 +++ internal/constant/constant.go | 6 +++--- internal/services/config_service.go | 8 +++++++- 5 files changed, 18 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d50ff50..4a77d58 100644 --- a/README.md +++ b/README.md @@ -361,6 +361,8 @@ port = 8052 host = 0.0.0.0 # 可选:配置 URL 前缀用于反向代理,例如 /baihu url_prefix = +# 全局会话 Cookie 名称 +cookie_name = BHToken [database] type = sqlite @@ -676,6 +678,7 @@ table_prefix = baihu_ | `BH_SERVER_PORT` | server.port | 服务端口 | 8052 | | `BH_SERVER_HOST` | server.host | 监听地址 | 0.0.0.0 | | `BH_SERVER_URL_PREFIX` | server.url_prefix | URL 前缀,用于反向代理子路径部署 | - | +| `BH_COOKIE_NAME` | server.cookie_name | 全局会话 Cookie 名称 | BHToken | | `BH_DB_TYPE` | database.type | 数据库类型 (sqlite/mysql) | sqlite | | `BH_DB_HOST` | database.host | 数据库地址 | localhost | | `BH_DB_PORT` | database.port | 数据库端口 | 3306 | diff --git a/configs/config.example.ini b/configs/config.example.ini index 1ce445b..f7d354d 100644 --- a/configs/config.example.ini +++ b/configs/config.example.ini @@ -6,6 +6,8 @@ host = 0.0.0.0 # URL前缀,例如 /baihu,留空则无前缀 # 配置后:前端路径为 /baihu/*,后端API路径为 /baihu/api/v1/* url_prefix = +# 全局会话 Cookie 名称 +cookie_name = BHToken [database] # 数据库类型: sqlite, mysql, postgres diff --git a/docs/guide/configuration.md b/docs/guide/configuration.md index f6e58b0..9458974 100644 --- a/docs/guide/configuration.md +++ b/docs/guide/configuration.md @@ -13,6 +13,7 @@ | `BH_SERVER_PORT` | server.port | 服务监听端口 | 8052 | | `BH_SERVER_HOST` | server.host | 监听地址 | 0.0.0.0 | | `BH_SERVER_URL_PREFIX` | server.url_prefix | URL 前缀,用于反向代理子路径部署 | - | +| `BH_COOKIE_NAME` | server.cookie_name | 全局会话 Cookie 名称 | BHToken | | `BH_DB_TYPE` | database.type | 数据库类型 (sqlite/mysql) | sqlite | | `BH_DB_HOST` | database.host | 数据库实例地址 | localhost | | `BH_DB_PORT` | database.port | 数据库端口 | 3306 | @@ -44,6 +45,8 @@ port = 8052 host = 0.0.0.0 # 配置 URL 前缀用于反向代理,例如 /baihu/ url_prefix = /baihu +# 全局会话 Cookie 名称 +cookie_name = BHToken [database] type = sqlite diff --git a/internal/constant/constant.go b/internal/constant/constant.go index 34da6ff..7bd0c2b 100644 --- a/internal/constant/constant.go +++ b/internal/constant/constant.go @@ -10,9 +10,6 @@ const ( // AdminRole 管理员角色 AdminRole = "admin" - // CookieName Cookie 名称 - CookieName = "BHToken" - // DefaultTaskTimeout 默认任务超时时间(分钟) DefaultTaskTimeout = 30 @@ -178,6 +175,9 @@ const ( ScriptsDirPlaceholder = "$SCRIPTS_DIR$" ) +// CookieName Cookie 名称 +var CookieName = "BHToken" + // TablePrefix 表前缀,从配置文件读取 var TablePrefix string diff --git a/internal/services/config_service.go b/internal/services/config_service.go index f9d49b3..603da24 100644 --- a/internal/services/config_service.go +++ b/internal/services/config_service.go @@ -16,6 +16,7 @@ type ServerConfig struct { Host string `ini:"host"` URLPrefix string `ini:"url_prefix"` PprofEnabled bool `ini:"pprof_enabled"` + CookieName string `ini:"cookie_name"` } type DatabaseConfig struct { @@ -87,6 +88,7 @@ func LoadConfig(path string) (*AppConfig, error) { Port: 8052, Host: "0.0.0.0", PprofEnabled: false, + CookieName: "BHToken", }, Database: DatabaseConfig{ Type: "sqlite", @@ -125,7 +127,10 @@ func LoadConfig(path string) (*AppConfig, error) { Config.Database.Path = constant.DefaultDBPath } - // 设置表前缀到 constant 包 + // 设置配置到 constant 包 + if Config.Server.CookieName != "" { + constant.CookieName = Config.Server.CookieName + } constant.TablePrefix = Config.Database.TablePrefix constant.RuntimeDBType = Config.Database.Type constant.RuntimeDBHost = Config.Database.Host @@ -169,6 +174,7 @@ func applyEnvOverrides() { getEnvStr("BH_SERVER_HOST", &Config.Server.Host) getEnvStr("BH_SERVER_URL_PREFIX", &Config.Server.URLPrefix) getEnvBool("BH_SERVER_PPROF", &Config.Server.PprofEnabled) + getEnvStr("BH_COOKIE_NAME", &Config.Server.CookieName) // Database getEnvStr("BH_DB_TYPE", &Config.Database.Type)