From e3853071d6e467fad06b29281a9b8eec4ecff8b0 Mon Sep 17 00:00:00 2001 From: Victor_Jay Date: Sat, 30 May 2026 23:42:27 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E6=B8=85=E7=90=86=20JWT=20=E5=90=91?= =?UTF-8?q?=E5=90=8E=E5=85=BC=E5=AE=B9=E6=AE=8B=E7=95=99=EF=BC=8C=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=E5=85=A8=E9=83=A8=E6=AD=BB=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除 5 个空壳占位文件:auth_token.go/auth_parser.go/repository.go(middleware)/token_service.go/provider.go - 移除 Config.JWT 字段、JWTConfig 结构体、JWT_SECRET 环境变量绑定 - 移除 config.yaml 中的 jwt 配置段 - 移除 model.User.TokenVersion 字段(session DestroyByUID 替代) - 移除 service/repository.go 中已废弃的 userTokenStore 接口 --- config.yaml | 7 ++----- internal/config/config.go | 8 +------- internal/middleware/auth_parser.go | 3 --- internal/middleware/auth_token.go | 3 --- internal/middleware/repository.go | 3 --- internal/model/user.go | 5 ++--- internal/service/provider.go | 4 ---- internal/service/repository.go | 5 ----- internal/service/token_service.go | 3 --- 9 files changed, 5 insertions(+), 36 deletions(-) delete mode 100644 internal/middleware/auth_parser.go delete mode 100644 internal/middleware/auth_token.go delete mode 100644 internal/middleware/repository.go delete mode 100644 internal/service/provider.go delete mode 100644 internal/service/token_service.go diff --git a/config.yaml b/config.yaml index a11b3de..6f6a25c 100644 --- a/config.yaml +++ b/config.yaml @@ -13,11 +13,8 @@ database: dbname: metalab_dev sslmode: disable -jwt: - secret: "" # 生产环境通过 JWT_SECRET 环境变量或 .env 注入(若未来需复用 JWT) - -# 会话配置(服务端 Session,替换 JWT 无状态认证) -# 每次请求自动续期(滑动窗口),解决"记住我"掉线问题 +# 会话配置(服务端 Session,滑动窗口续期) +# 每次请求自动续期,解决"记住我"掉线问题 session: idle_timeout: 1440 # 不记住我:空闲超时(分钟),默认 1440 = 24 小时 remember_timeout: 43200 # 记住我:空闲超时(分钟),默认 43200 = 30 天 diff --git a/internal/config/config.go b/internal/config/config.go index cc35ef8..9e899ee 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -13,7 +13,6 @@ import ( type Config struct { Server ServerConfig `mapstructure:"server"` Database DatabaseConfig `mapstructure:"database"` - JWT JWTConfig `mapstructure:"jwt"` Session SessionConfig `mapstructure:"session"` Bcrypt BcryptConfig `mapstructure:"bcrypt"` Roles RolesConfig `mapstructure:"roles"` @@ -42,11 +41,7 @@ type DatabaseConfig struct { SSLMode string `mapstructure:"sslmode"` } -type JWTConfig struct { - Secret string `mapstructure:"secret"` -} - -// SessionConfig 服务端会话配置(替换 JWT 无状态认证) +// SessionConfig 服务端会话配置 type SessionConfig struct { IdleTimeout int `mapstructure:"idle_timeout"` // 不记住我:空闲超时(分钟),默认 1440(24小时) RememberTimeout int `mapstructure:"remember_timeout"` // 记住我:空闲超时(分钟),默认 43200(30天) @@ -132,7 +127,6 @@ func loadEnvFile(path string) { // bindEnvOverride 将环境变量映射到 config 的嵌套键 func bindEnvOverride(v *viper.Viper) { _ = v.BindEnv("database.password", "DATABASE_PASSWORD") - _ = v.BindEnv("jwt.secret", "JWT_SECRET") } // DSN 返回 PostgreSQL 连接字符串 diff --git a/internal/middleware/auth_parser.go b/internal/middleware/auth_parser.go deleted file mode 100644 index 211bd6b..0000000 --- a/internal/middleware/auth_parser.go +++ /dev/null @@ -1,3 +0,0 @@ -package middleware - -// auth_parser.go: JWT 解析逻辑已被服务端 Session 替换,本文件保留占位,后续清理。 diff --git a/internal/middleware/auth_token.go b/internal/middleware/auth_token.go deleted file mode 100644 index fce2ec4..0000000 --- a/internal/middleware/auth_token.go +++ /dev/null @@ -1,3 +0,0 @@ -package middleware - -// auth_token.go: JWT 解析逻辑已被服务端 Session 替换,本文件保留占位,后续清理。 diff --git a/internal/middleware/repository.go b/internal/middleware/repository.go deleted file mode 100644 index 3d65fb9..0000000 --- a/internal/middleware/repository.go +++ /dev/null @@ -1,3 +0,0 @@ -package middleware - -// repository.go: JWT tokenVersionStore 接口已随 Session 迁移移除,保留占位,后续清理。 diff --git a/internal/model/user.go b/internal/model/user.go index 71d7a61..cc081d9 100644 --- a/internal/model/user.go +++ b/internal/model/user.go @@ -12,9 +12,8 @@ type User struct { Avatar string `gorm:"type:varchar(500);default:''" json:"avatar"` Bio string `gorm:"type:text" json:"bio"` - Role string `gorm:"type:varchar(20);default:user;index;not null" json:"role"` - Status string `gorm:"type:varchar(20);default:active;index;not null" json:"status"` - TokenVersion int `gorm:"default:0;not null" json:"-"` // 令牌版本,+1 即时吊销所有 JWT + Role string `gorm:"type:varchar(20);default:user;index;not null" json:"role"` + Status string `gorm:"type:varchar(20);default:active;index;not null" json:"status"` // 安全与审计 RegIP string `gorm:"type:varchar(45);default:''" json:"-"` // 注册 IP diff --git a/internal/service/provider.go b/internal/service/provider.go deleted file mode 100644 index 8946c3b..0000000 --- a/internal/service/provider.go +++ /dev/null @@ -1,4 +0,0 @@ -package service - -// provider.go: tokenProvider 接口已移除,JWT 被服务端 Session 替换。 -// 本文件保留占位,后续清理。 diff --git a/internal/service/repository.go b/internal/service/repository.go index 5546036..e643666 100644 --- a/internal/service/repository.go +++ b/internal/service/repository.go @@ -12,11 +12,6 @@ type userAuthStore interface { ExistsByUsername(username string) (bool, error) } -// userTokenStore 已废弃(JWT 替换为 Session),保留占位 -type userTokenStore interface { - FindByIDForAuth(userID uint) (*model.User, error) -} - // userAdminStore AdminService 所需的最小仓储接口(ISP:7 个方法) type userAdminStore interface { CountSearchUsers(keyword, role, status string) (int64, error) diff --git a/internal/service/token_service.go b/internal/service/token_service.go deleted file mode 100644 index 47c2e8b..0000000 --- a/internal/service/token_service.go +++ /dev/null @@ -1,3 +0,0 @@ -package service - -// token_service.go: JWT 签发与刷新逻辑已被服务端 Session 替换,本文件保留占位,后续清理。