package middleware import "strings" // ============================== 免登录路由白名单 ============================== // publicPaths 免登录路由白名单 // // 精确匹配,公开路由一律不带版本前缀; // 须与各注册处保持一致:auth.go 的 gmeta 标注(登录、验证码、令牌兑换) // 以及 router.go 中的健康检查 var publicPaths = map[string]bool{ "/api/login": true, "/api/register": true, "/api/captcha": true, "/api/oauth2/token": true, // refresh_token 兑换 "/api/health": true, // 健康检查 } // IsPublicPath 判断是否为免登录路由 // // 供身份认证与租户中间件据此放行; // 同时放行 OpenAPI 与 Swagger 文档路径 func IsPublicPath(path string) bool { if publicPaths[path] { return true } // OpenAPI / Swagger 文档 if path == "/api.json" || strings.HasPrefix(path, "/swagger") { return true } return false }