feat(auth): 记住登录 —— 刷新令牌持久化,不再在本机保存明文密码
CI / backend (push) Waiting to run

- 后端:新增 refresh_token 模型与服务,登录签发 refresh token,支持静默续期与登出撤销
  (backend/internal/model/refresh_token.go, backend/internal/service/auth/refresh.go,
   auth_controller/auth_service/dto/router/jwt 配套改动)
- 前端:登录页改为「记住登录」(只持久化引导令牌与用户名,不落盘密码),401 自动刷新并重试原请求
  (stores/user.js, api/request.js, api/auth.js, main.js, Login.vue 配套改动)
- 部署:已在容器中验证运行(镜像构建于 2026-11-03 00:50,服务 healthy)
- 安全:仓库内无任何 .env/证书/密钥文件变更
This commit is contained in:
Logan.Li committed 2026-11-03 01:12:22 +08:00
1 parent 4bf7fb6e5c
commit a01b89f942
13 files changed
+531 -208

No files matched your search

+15 -2
View File
@@ -8,8 +8,21 @@ type LoginRequest struct {
// LoginResponse 登录响应 // Logan.Li
type LoginResponse struct {
Token string `json:"token"`
UserInfo UserInfoResponse `json:"user_info"`
Token string `json:"token"`
ExpiresIn int64 `json:"expires_in"` // 访问令牌有效期(秒)
RefreshToken string `json:"refresh_token"` // 一次性返回,前端按需本地保存
RefreshExpiresAt string `json:"refresh_expires_at"` // 刷新令牌到期时间(RFC3339)
UserInfo UserInfoResponse `json:"user_info"`
}
// RefreshRequest 刷新访问令牌请求 // Logan.Li
type RefreshRequest struct {
RefreshToken string `json:"refresh_token" binding:"required"`
}
// LogoutRequest 登出请求(撤销刷新令牌,缺省也返回成功) // Logan.Li
type LogoutRequest struct {
RefreshToken string `json:"refresh_token"`
}
// UserInfoResponse 用户信息响应 // Logan.Li