rustauth.go 918 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. if len(token) <= 7 {
  18. c.JSON(401, gin.H{
  19. "error": "Unauthorized",
  20. })
  21. c.Abort()
  22. return
  23. }
  24. //提取token,格式是Bearer {token}
  25. //这里只是简单的提取
  26. token = token[7:]
  27. //验证token
  28. user := service.AllService.UserService.InfoByAccessToken(token)
  29. if user.Id == 0 {
  30. c.JSON(401, gin.H{
  31. "error": "Unauthorized",
  32. })
  33. c.Abort()
  34. return
  35. }
  36. if !service.AllService.UserService.CheckUserEnable(user) {
  37. c.JSON(401, gin.H{
  38. "error": "账号已被禁用",
  39. })
  40. c.Abort()
  41. return
  42. }
  43. c.Set("curUser", user)
  44. c.Set("token", token)
  45. c.Next()
  46. }
  47. }