SuperAPI AI 工具集

authorization

安全与审计

查看项目

更新于 10-16 09:46

技能介绍

用途:该技能用于在 NestJS 中实现授权。授权在认证之后执行,判断已认证用户是否有权执行某操作,与“认证回答你是谁”不同,授权回答“你能做什么”。

主要能力:一是基于角色的访问控制(RBAC),通过 Role 枚举、Roles 装饰器与 RolesGuard 限制路由,可注册为全局守卫(APP_GUARD)。二是基于权限的授权,定义 Permission 枚举、RequirePermissions 装饰器与 PermissionsGuard,用 every 校验全部所需权限。三是资源所有权校验,如 PostOwnershipGuard 比较 post.authorId 与 user.id,管理员可绕过。四是 CASL 集成(需 npm install @casl/ability),用 AbilityFactory 的 AbilityBuilder 定义 can/cannot 规则,配合 AbilitiesGuard 与 CheckAbilities 装饰器。五是策略式授权,由 PolicyService 编写 canUpdatePost、canDeletePost、canViewAnalytics 等方法,PolicyGuard 按元数据调用。此外还提供组合守卫、多租户守卫(TenantGuard 比较 tenantId)与 ABAC 守卫(按条件函数判断)。

使用方式:在控制器或方法上使用 @UseGuards 与 @Roles、@RequirePermissions、@CheckAbilities 等装饰器;守卫通过 Reflector 读取元数据,从请求中取 user 校验角色、权限或资源归属。CASL 需先安装依赖再定义 AbilityFactory。

适用场景:需要 RBAC、权限控制、所有权限制、多租户隔离或复杂策略的 NestJS 应用。

限制:资料未提供安装该技能的具体命令、收费与价格、支持平台、性能与效果数据,也未给出完整的项目集成步骤与测试方式,这些信息暂未提供。