login.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package admin
  2. import (
  3. "Gwen/global"
  4. "Gwen/http/request/admin"
  5. "Gwen/http/response"
  6. adResp "Gwen/http/response/admin"
  7. "Gwen/service"
  8. "fmt"
  9. "github.com/gin-gonic/gin"
  10. )
  11. type Login struct {
  12. }
  13. // Login 登录
  14. // @Tags 登录
  15. // @Summary 登录
  16. // @Description 登录
  17. // @Accept json
  18. // @Produce json
  19. // @Param body body admin.Login true "登录信息"
  20. // @Success 200 {object} response.Response{data=adResp.LoginPayload}
  21. // @Failure 500 {object} response.Response
  22. // @Router /admin/login [post]
  23. // @Security token
  24. func (ct *Login) Login(c *gin.Context) {
  25. fmt.Println("login")
  26. f := &admin.Login{}
  27. err := c.ShouldBindJSON(f)
  28. if err != nil {
  29. response.Fail(c, 101, "参数错误")
  30. return
  31. }
  32. errList := global.Validator.ValidStruct(f)
  33. if len(errList) > 0 {
  34. response.Fail(c, 101, errList[0])
  35. return
  36. }
  37. u := service.AllService.UserService.InfoByUsernamePassword(f.Username, f.Password)
  38. if u.Id == 0 {
  39. response.Fail(c, 101, "用户名或密码错误")
  40. return
  41. }
  42. ut := service.AllService.UserService.Login(u)
  43. response.Success(c, &adResp.LoginPayload{
  44. Token: ut.Token,
  45. Username: u.Username,
  46. RouteNames: service.AllService.UserService.RouteNames(u),
  47. Nickname: u.Nickname,
  48. })
  49. }
  50. // Logout 登出
  51. // @Tags 登录
  52. // @Summary 登出
  53. // @Description 登出
  54. // @Accept json
  55. // @Produce json
  56. // @Success 200 {object} response.Response
  57. // @Failure 500 {object} response.Response
  58. // @Router /admin/logout [post]
  59. func (ct *Login) Logout(c *gin.Context) {
  60. u := service.AllService.UserService.CurUser(c)
  61. token, ok := c.Get("token")
  62. if ok {
  63. service.AllService.UserService.Logout(u, token.(string))
  64. }
  65. response.Success(c, nil)
  66. }