Files
EasyGoAdmin_GoFrame_EleVue/internal/middleware/public.go
T
2026-10-20 11:37:25 +08:00

34 lines
944 B
Go

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
}