package auth import ( "github.com/gin-gonic/gin" v1 "github.com/runningwater/gohub/app/http/controllers/api/v1" "github.com/runningwater/gohub/app/requests" "github.com/runningwater/gohub/pkg/auth" "github.com/runningwater/gohub/pkg/jwt" "github.com/runningwater/gohub/pkg/response" ) type LoginController struct { v1.BaseApiController } // LoginByPhone 手机号登录 func (lc *LoginController) LoginByPhone(c *gin.Context) { // 1. 验证表单 request := requests.LoginByPhoneRequest{} if ok := requests.Validate(c, &request, requests.LoginByPhone); !ok { return } // 2. 尝试登录 user, err := auth.LoginByPhone(request.Phone) if err != nil { // 失败,显示错误提示 response.Error(c, err, "账号不存在或密码错误") return } // 登录成功 token := jwt.NewJWT().IssueToken(user.GetStringID(), user.Name) response.JSON(c, gin.H{ "token": token, }) } // LoginByPassword 用户名 + 密码登录 func (lc *LoginController) LoginByPassword(c *gin.Context) { // 1. 验证表单 request := requests.LoginByPasswordRequest{} if ok := requests.Validate(c, &request, requests.LoginByPassword); !ok { return } // 2. 尝试登录 user, err := auth.Attemp(request.LoginID, request.Password) if err != nil { // 失败,显示错误提示 response.Unauthorized(c, "账号不存在或密码错误") return } // 登录成功 token := jwt.NewJWT().IssueToken(user.GetStringID(), user.Name) response.JSON(c, gin.H{ "token": token, }) }