package middleware import ( "errors" "github.com/gin-gonic/gin" "sundynix-go/model/commom/response" "sundynix-go/utils" ) // AuthMiddleware 验证token有效性 func AuthMiddleware() gin.HandlerFunc { return func(c *gin.Context) { token := utils.GetToken(c) if token == "" { response.NoAuth("未登录或非法访问", c) c.Abort() return } //todo 黑名单处理 j := utils.NewJWT() // 解析token信息 claims, err := j.ParseToken(token) if err != nil { if errors.Is(err, utils.TokenExpired) { response.NoAuth("登录过期", c) utils.ClearToken(c) c.Abort() return } response.NoAuth(err.Error(), c) utils.ClearToken(c) c.Abort() return } c.Set("claims", claims) } }