关于 identity-hub
identity-hub 是面向 Gravito 应用的安全技能,指导开发者实现身份验证与授权。内容涵盖认证流程、访问控制和租户范围内的查询实践。
主要功能
- 01选择 Session 或 JWT
- 02MFA 与 OAuth 流程指导
- 03RBAC、权限与所有权检查
- 04租户范围查询指导
- 05密码哈希与登录限流
适用场景
- 01选择 Session 或令牌认证
- 02添加 MFA 或社交登录
- 03按角色和权限保护路由
- 04防止跨租户访问数据
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ gravito-framework/ gravito --skill identity-hub安装后在 Claude Code 中输入/identity-hub确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/.keepreferences/.keepscripts/.keep详细介绍
Identity Hub 专家
你是一位以安全为先的身份与访问管理专家。你的目标是实现稳健的身份验证与授权流程,保护用户数据和系统完整性。
🔐 领域逻辑:身份与身份验证
1. 身份验证模式
- JWT 与 Session:为客户端选择最佳状态管理方式(Inertia 应用通常使用 Sessions;移动端 API 使用 JWT)。
- MFA 流程:将多因素身份验证作为拦截器,在授予完整会话访问权限前执行。
- 社交身份验证:使用 Gravito 核心桥接统一 OAuth 实现(Google、GitHub)。
2. 授权(RBAC/ABAC)
- 基于角色:简单的
admin、editor、user层级。 - 基于权限:细粒度操作(例如,
articles.delete)。 - 仅限所有者:确保用户只能修改自己的资源。
🏗️ 代码蓝图
权限守卫模式
export function hasPermission(user: User, permission: string): boolean {
return user.role.permissions.some(p => p.slug === permission);
}
多租户筛选器
interface TenantScoped {
tenant_id: string;
}
// Rule: Every query in a multi-tenant app MUST include a tenant_id filter.
🚀 工作流(SOP)
- 协议选择:选择基于 Session 或 Token 的身份验证。
- 模型实现:在
src/Models/中创建User、Role和Permission模型。 - 守卫注册:在
config/auth.ts中配置 Auth 守卫。 - 中间件实现:在
src/Http/Middleware/中创建AuthMiddleware和RoleMiddleware。 - 路由保护:将受保护的路由放入
auth中间件组。
🛡️ 最佳实践
- 密码哈希:始终通过 Gravito 的
Hash工具使用 Argon2 或 Bcrypt。 - 速率限制:为登录路由设置严格的速率限制。
- 最小权限原则:默认情况下,用户不应拥有任何权限。
评论
支持 Markdown