package middleware import ( "errors" "sundynix-go/model/commom/response" "sundynix-go/service" "sundynix-go/utils/jwt" "github.com/gin-gonic/gin" ) var jwtService = service.ServiceGroupApp.SystemServiceGroup.JwtService // AuthMiddleware 验证token有效性 func AuthMiddleware() gin.HandlerFunc { return func(c *gin.Context) { token := jwt.GetToken(c) if token == "" { response.NoAuth("未登录或非法访问", c) c.Abort() return } userId := jwt.GetUserId(c) if jwtService.IsInBlacklist(userId, token) { response.NoAuth("未登录或令牌失效", c) c.Abort() return } j := jwt.NewJWT() // 解析token信息 claims, err := j.ParseToken(token) if err != nil { if errors.Is(err, jwt.TokenExpired) { response.NoAuth("登录过期", c) jwt.ClearToken(c) c.Abort() return } response.NoAuth(err.Error(), c) jwt.ClearToken(c) c.Abort() return } c.Set("claims", claims) } }