auth.go 980 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package auth
  2. import (
  3. "authService/response"
  4. "authService/service/user"
  5. "authService/util"
  6. "authService/util/constants"
  7. "authService/validators"
  8. "github.com/gin-gonic/gin"
  9. )
  10. // 登录
  11. func Login(c *gin.Context) {
  12. type Validator struct {
  13. Account string `json:"account" form:"account" binding:"required,alphanum,min=4,max=20"`
  14. Password string `json:"password" form:"password" binding:"required,min=6,max=20"`
  15. }
  16. var validator Validator
  17. err := c.ShouldBind(&validator)
  18. if err != nil {
  19. response.FailValidator(c, err)
  20. return
  21. }
  22. token, expireIn, errCode := user.Login(validator.Account, validator.Password)
  23. if errCode != nil {
  24. response.Fail(c, errCode)
  25. return
  26. }
  27. response.Success(c, map[string]any{
  28. "token": token,
  29. "expireIn": expireIn,
  30. })
  31. }
  32. // 退出登录
  33. func Logout(c *gin.Context) {
  34. cacheUser, _ := util.GetFromGinContext[*validators.AuthUser](c, constants.UserCacheKey)
  35. user.Logout(cacheUser.ID)
  36. response.Success(c, map[string]any{})
  37. }