authorize.go 897 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package middleware
  2. import (
  3. "DataShare/dao"
  4. "github.com/gin-gonic/gin"
  5. "net/http"
  6. )
  7. func TokenAuthMiddleware() gin.HandlerFunc {
  8. return func(c *gin.Context) {
  9. err := TokenValid(c.Request)
  10. if err != nil {
  11. c.JSON(http.StatusUnauthorized, "unauthorized")
  12. c.Abort()
  13. return
  14. }
  15. metadata, err := ExtractTokenMetadata(c.Request)
  16. if err != nil {
  17. c.JSON(http.StatusUnauthorized, "unauthorized")
  18. c.Abort()
  19. return
  20. }
  21. uuidInfo ,err := dao.FetchAuth(metadata.TokenUuid)
  22. if len(uuidInfo)<=0{
  23. c.JSON(http.StatusUnauthorized, "unauthorized")
  24. c.Abort()
  25. return
  26. }
  27. ret,_,err := dao.Empower_GetInstance().GetLiceneseLeftDays()
  28. if err != nil {
  29. c.JSON(http.StatusUnauthorized, "unauthorized failed:"+err.Error())
  30. c.Abort()
  31. return
  32. }
  33. if ret == false {
  34. c.JSON(http.StatusUnauthorized, "unauthorized expired:")
  35. c.Abort()
  36. return
  37. }
  38. c.Next()
  39. }
  40. }