rustauth.go 811 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package middleware
  2. import (
  3. "Gwen/service"
  4. "github.com/gin-gonic/gin"
  5. )
  6. func RustAuth() gin.HandlerFunc {
  7. return func(c *gin.Context) {
  8. //获取HTTP_AUTHORIZATION
  9. token := c.GetHeader("Authorization")
  10. if token == "" {
  11. c.JSON(401, gin.H{
  12. "error": "Unauthorized",
  13. })
  14. c.Abort()
  15. return
  16. }
  17. //提取token,格式是Bearer {token}
  18. //这里只是简单的提取
  19. token = token[7:]
  20. //验证token
  21. user := service.AllService.UserService.InfoByAccessToken(token)
  22. if user.Id == 0 {
  23. c.JSON(401, gin.H{
  24. "error": "Unauthorized",
  25. })
  26. c.Abort()
  27. return
  28. }
  29. if !service.AllService.UserService.CheckUserEnable(user) {
  30. c.JSON(401, gin.H{
  31. "error": "账号已被禁用",
  32. })
  33. c.Abort()
  34. return
  35. }
  36. c.Set("curUser", user)
  37. c.Set("token", token)
  38. c.Next()
  39. }
  40. }