login.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package controllers
  2. import (
  3. "cc-officialweb/models"
  4. "cc-officialweb/service"
  5. "encoding/json"
  6. beego "github.com/beego/beego/v2/server/web"
  7. "github.com/go-playground/validator/v10"
  8. )
  9. type LoginController struct {
  10. beego.Controller
  11. }
  12. // Login 登录接口
  13. func (l *LoginController) Login() {
  14. var user models.User
  15. // 获取POST参数
  16. err := json.Unmarshal(l.Ctx.Input.RequestBody, &user)
  17. if err != nil {
  18. l.Data["json"] = &JSON{Code: 103, Msg: "json格式错误"}
  19. l.ServeJSON()
  20. return
  21. }
  22. // 进行验证和登录检查
  23. validate := validator.New()
  24. unva := validate.Var(user.Username, "required")
  25. pwdva := validate.Var(user.Password, "required")
  26. if unva != nil || pwdva != nil {
  27. l.Data["json"] = &JSON{Code: 103, Msg: "用户名密码不能为空"}
  28. l.ServeJSON()
  29. return
  30. } else {
  31. token := service.Login(user)
  32. if token != "" {
  33. l.Data["json"] = &JSON{Code: 200, Msg: "登录成功", Data: token}
  34. l.ServeJSON()
  35. } else {
  36. l.Data["json"] = &JSON{Code: 103, Msg: "用户名密码错误"}
  37. l.ServeJSON()
  38. return
  39. }
  40. }
  41. }