mcpField
I
identity-hub

identity-hub

github.com/gravito-framework安全241 次安装27 周前更新
代码仓库

关于 identity-hub

identity-hub 是面向 Gravito 应用的安全技能,指导开发者实现身份验证与授权。内容涵盖认证流程、访问控制和租户范围内的查询实践。

主要功能

  1. 01选择 Session 或 JWT
  2. 02MFA 与 OAuth 流程指导
  3. 03RBAC、权限与所有权检查
  4. 04租户范围查询指导
  5. 05密码哈希与登录限流

适用场景

  1. 01选择 Session 或令牌认证
  2. 02添加 MFA 或社交登录
  3. 03按角色和权限保护路由
  4. 04防止跨租户访问数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/gravito-framework/gravito --skill identity-hub

安装后在 Claude Code 中输入/identity-hub确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
.keep
references/
.keep
scripts/
.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)

  1. 协议选择:选择基于 Session 或 Token 的身份验证。
  2. 模型实现:在 src/Models/ 中创建 User、Role 和 Permission 模型。
  3. 守卫注册:在 config/auth.ts 中配置 Auth 守卫。
  4. 中间件实现:在 src/Http/Middleware/ 中创建 AuthMiddleware 和 RoleMiddleware。
  5. 路由保护:将受保护的路由放入 auth 中间件组。

🛡️ 最佳实践

  • 密码哈希:始终通过 Gravito 的 Hash 工具使用 Argon2 或 Bcrypt。
  • 速率限制:为登录路由设置严格的速率限制。
  • 最小权限原则:默认情况下,用户不应拥有任何权限。

评论

支持 Markdown