用途:这是一个安全优先的身份与访问管理(IAM)专家技能,在实现登录、认证、RBAC 或多租户逻辑时触发,目标是构建健壮的认证与授权流程,保护用户数据与系统完整性。
主要能力:认证模式方面,负责在 JWT 与会话之间选择合适的状态管理(Inertia 应用通常用会话,移动端 API 用 JWT),可作为拦截器在全量会话访问前实现 MFA 多因素认证,并借助 Gravito 核心桥接标准化 OAuth 社交登录(Google、GitHub)。授权方面支持 RBAC/ABAC,包括基于角色的层级(admin、editor、user)、细粒度权限(如 articles.delete)以及仅限所有者修改自身资源的逻辑。多租户方面要求多租户应用的每个查询都必须带上 tenant_id 过滤。
使用方式:标准流程为——先选择会话或令牌认证协议;在 src/Models/ 创建 User、Role、Permission 模型;在 config/auth.ts 配置 Auth 守卫;在 src/Http/Middleware/ 实现 AuthMiddleware 与 RoleMiddleware;最后将受保护路由包进 auth 中间件组。权限判断示例:hasPermission 通过 user.role.permissions 匹配权限 slug;多租户通过 TenantScoped 接口的 tenant_id 约束。
最佳实践与限制:密码必须经 Gravito 的 Hash 工具使用 Argon2 或 Bcrypt 哈希;登录路由需配置严格的限流;遵循最小权限,用户默认不应有任何权限。资料未提供具体安装命令、依赖版本、价格或平台支持信息。