智盟项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 regels
936 B

  1. package hdl
  2. import (
  3. "applet/app/db"
  4. "applet/app/e"
  5. "applet/app/lib/validate"
  6. "applet/app/md"
  7. "applet/app/svc"
  8. "applet/app/utils"
  9. "fmt"
  10. "github.com/gin-gonic/gin"
  11. )
  12. func Login(c *gin.Context) {
  13. var req md.LoginReq
  14. err := c.ShouldBindJSON(&req)
  15. if err != nil {
  16. err = validate.HandleValidateErr(err)
  17. err1 := err.(e.E)
  18. e.OutErr(c, err1.Code, err1.Error())
  19. return
  20. }
  21. adminDb := db.AdminDb{}
  22. adminDb.Set()
  23. admin, err := adminDb.GetAdminByUserName(req.UserName)
  24. if err != nil {
  25. e.OutErr(c, e.ERR_DB_ORM, err)
  26. return
  27. }
  28. if utils.Md5(req.PassWord) != admin.Password {
  29. e.OutErr(c, e.ERR_INVALID_ARGS, "密码错误")
  30. return
  31. }
  32. ip := utils.GetIP(c.Request)
  33. key := fmt.Sprintf(md.AdminJwtTokenKey, ip, utils.AnyToString(admin.AdmId))
  34. token, err := svc.HandleLoginToken(key, admin)
  35. if err != nil {
  36. e.OutErr(c, e.ERR, err.Error())
  37. return
  38. }
  39. e.OutSuc(c, md.LoginResponse{
  40. Token: token,
  41. }, nil)
  42. return
  43. }