package handler import ( "net/http" "gen2d/internal/model" "github.com/gin-gonic/gin" ) // LoginRequest 登录请求参数。 type LoginRequest struct { Username string `json:"username" binding:"required"` // 用户名 Password string `json:"password" binding:"required"` // 密码 } // LoginResponse 登录成功返回的凭证及用户信息。 type LoginResponse struct { Token string `json:"token"` // 访问令牌 ExpiresIn int64 `json:"expiresIn"` // 过期时间(秒) User model.User `json:"user"` // 用户信息 } // Login 用户登录接口,校验用户名/密码并返回访问令牌。 func Login(c *gin.Context) { var req LoginRequest if err := c.ShouldBindJSON(&req); err != nil { c.JSON(http.StatusBadRequest, model.Fail(http.StatusBadRequest, "参数错误: "+err.Error())) return } // TODO: 调用 service 层校验用户凭证并签发 token c.JSON(http.StatusOK, model.OK(LoginResponse{ Token: "placeholder-token", ExpiresIn: 7200, User: model.User{Username: req.Username}, })) }