接口鉴权
youlai-gin 采用 RBAC 权限模型,通过 JWT 鉴权 + 权限点(perm)校验实现接口访问控制。
约定
- API 前缀:
/api/v1 - Token:
Authorization: Bearer <accessToken>
权限点来源
权限点来自菜单/按钮的 perm 字段(例如:sys:user:list),角色与菜单的关联决定最终权限集合。
后端会根据用户角色查询权限点并做缓存:
- 查询关系:
sys_user_role→sys_role→sys_role_menu→sys_menu(perm)
鉴权与校验
- 认证(解析 Token、注入用户上下文)由全局路由组中间件完成:
internal/common/auth/Middleware(...) - 权限校验中间件:
internal/middleware/permission.goPermissionMiddleware():获取并缓存用户权限信息,写入上下文userPermissionsRequirePermission("perm"):校验单个权限点RequireAnyPermission(...)/RequireAllPermissions(...):校验多个权限点RequireRole("role")/RequireAnyRole(...):按角色编码校验
相关实现
- 权限计算与缓存:
internal/common/permission/service/permission_service.go - 权限中间件:
internal/middleware/permission.go
