Documentation
¶
Overview ¶
Package middleware 提供 SDK 级别的 Gin 中间件。
Package middleware 提供 SDK 级别的 Gin 中间件。
Package middleware 提供 SDK 级别的站点解析中间件。
Index ¶
- Constants
- func AdminOnly() gin.HandlerFunc
- func AdminSiteMiddleware() gin.HandlerFunc
- func CORS() gin.HandlerFunc
- func JWTAuth(cfg *config.JWTConfig) gin.HandlerFunc
- func PublicSiteMiddleware() gin.HandlerFunc
- func PurgeSiteCache()
- func RequirePermission(code string) gin.HandlerFunc
- func RequirePlugin(pluginCode string, checker contracts.IPluginChecker) gin.HandlerFunc
Constants ¶
const ( CtxCurrentSiteID = "current_site_id" CtxCurrentSite = "current_site" CtxCurrentSiteDB = "current_site_db" )
gin.Context 中与「当前操作站点」相关的 key。
Variables ¶
This section is empty.
Functions ¶
func AdminOnly ¶
func AdminOnly() gin.HandlerFunc
AdminOnly 在 JWTAuth 之后调用,仅允许 admin 类型 token 访问后台接口。
func AdminSiteMiddleware ¶
func AdminSiteMiddleware() gin.HandlerFunc
AdminSiteMiddleware 用于 Admin API(/api/admin/...)的站点解析中间件。
调用前提:必须先经过 JWTAuth,已将 admin_id / is_super_admin 注入 Context。
行为:
- 强制从请求头 X-Site-ID 读取站点 ID(缺失或为 0 直接 400);
- 非超管需通过 admin_sites 校验是否拥有该站点权限(status=1);
- 校验站点存在且启用,加载对应 DB(shared 复用默认库 / independent 使用独立库);
- 注入 current_site_id / current_site / current_site_db / is_shared_mode 到 Context。
func CORS ¶
func CORS() gin.HandlerFunc
CORS 返回允许跨域访问的中间件。
默认放开常见的 GET/POST/PUT/DELETE/OPTIONS 方法, 并允许携带 Authorization、Content-Type 等请求头。 生产环境建议把 Access-Control-Allow-Origin 替换为白名单。
func JWTAuth ¶
func JWTAuth(cfg *config.JWTConfig) gin.HandlerFunc
JWTAuth 返回基于 Bearer Token 的鉴权中间件。
行为:
- 从 Authorization 头读取 "Bearer
"; - 调用 jwt 包解析 + 校验签名/有效期;
- 校验失败统一返回 401;
- 校验成功则把 admin_id / username / role / admin_site_id / is_super_admin 写入 gin.Context,下游 handler / 站点中间件可直接读取。
func PublicSiteMiddleware ¶
func PublicSiteMiddleware() gin.HandlerFunc
PublicSiteMiddleware 用于 Public API(/api/v1/...)及模板路由的站点解析中间件。
站点识别优先级:
- X-Site-Code 请求头(前端显式指定站点 code,带 LRU 缓存);
- Host 头匹配(遍历所有启用站点的 Domains 字段);
- Debug 模式回退到第一个启用的站点(本地开发兜底)。
func RequirePermission ¶
func RequirePermission(code string) gin.HandlerFunc
RequirePermission 返回一个权限校验中间件。 超级管理员(IsSuperAdmin=true)自动放行,普通管理员需要 permissions 列表中包含 code。
func RequirePlugin ¶
func RequirePlugin(pluginCode string, checker contracts.IPluginChecker) gin.HandlerFunc
RequirePlugin 返回一个中间件,检查指定插件是否已安装启用。
Types ¶
This section is empty.