Skip to content

接口鉴权

youlai-gin 采用 RBAC 权限模型,通过 JWT 鉴权 + 权限点(perm)校验实现接口访问控制。

约定

  • API 前缀:/api/v1
  • Token:Authorization: Bearer <accessToken>

权限点来源

权限点来自菜单/按钮的 perm 字段(例如:sys:user:list),角色与菜单的关联决定最终权限集合。

后端会根据用户角色查询权限点并做缓存:

  • 查询关系:sys_user_rolesys_rolesys_role_menusys_menu(perm)

鉴权与校验

  • 认证(解析 Token、注入用户上下文)由全局路由组中间件完成:internal/common/auth/Middleware(...)
  • 权限校验中间件:internal/middleware/permission.go
    • PermissionMiddleware():获取并缓存用户权限信息,写入上下文 userPermissions
    • RequirePermission("perm"):校验单个权限点
    • RequireAnyPermission(...) / RequireAllPermissions(...):校验多个权限点
    • RequireRole("role") / RequireAnyRole(...):按角色编码校验

相关实现

  • 权限计算与缓存:internal/common/permission/service/permission_service.go
  • 权限中间件:internal/middleware/permission.go

基于 MIT 许可发布 · 由 ❤️ 和 ☕ 驱动 · 支持作者