login_controller.go 897 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package auth
  2. import (
  3. "github.com/gin-gonic/gin"
  4. v1 "github.com/runningwater/gohub/app/http/controllers/api/v1"
  5. "github.com/runningwater/gohub/app/requests"
  6. "github.com/runningwater/gohub/pkg/auth"
  7. "github.com/runningwater/gohub/pkg/jwt"
  8. "github.com/runningwater/gohub/pkg/response"
  9. )
  10. type LoginController struct {
  11. v1.BaseApiController
  12. }
  13. // LoginByPhone 手机号登录
  14. func (lc *LoginController) LoginByPhone(c *gin.Context) {
  15. // 1. 验证表单
  16. request := requests.LoginByPhoneRequest{}
  17. if ok := requests.Validate(c, &request, requests.LoginByPhone); !ok {
  18. return
  19. }
  20. // 2. 尝试登录
  21. user, err := auth.LoginByPhone(request.Phone)
  22. if err != nil {
  23. // 失败,显示错误提示
  24. response.Error(c, err, "账号不存在或密码错误")
  25. }
  26. // 登录成功
  27. token := jwt.NewJWT().IssueToken(user.GetStringID(), user.Name)
  28. response.JSON(c, gin.H{
  29. "token": token,
  30. })
  31. }