mcpField
C
convex-auth

convex-auth

github.com/igorwarzocha安全122117 次安装38 周前更新
代码仓库

关于 convex-auth

为 Convex 应用实现身份验证与授权模式的技能,面向构建 Convex 后端的开发者。内容涵盖 OIDC 提供商集成、内置 Convex Auth,以及服务器函数中的身份校验和访问控制。

主要功能

  1. 01支持 Clerk、Auth0、WorkOS 和自定义 OIDC
  2. 02提供内置 Convex Auth 方法说明
  3. 03在服务器函数中读取身份声明
  4. 04建议公开函数实施行级授权
  5. 05说明 Webhook 签名验证与密钥管理

适用场景

  1. 01将 OIDC 身份验证接入 Convex
  2. 02使用 Magic Links、OTP、OAuth 或密码登录
  3. 03依据用户身份限制记录访问
  4. 04通过 Webhook 同步身份提供商用户

安装

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

$npx skills add https://github.com/igorwarzocha/opencode-workflows --skill convex-auth

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

详细介绍

使用 OIDC 提供商(Clerk、Auth0、WorkOS)或内置的 Convex Auth 库,实现 Convex 身份验证与授权模式。 - **身份验证概览**:https://docs.convex.dev/auth - **Convex Auth(beta)**:https://docs.convex.dev/auth/convex-auth - **身份验证方法**:https://labs.convex.dev/auth - **Clerk 集成**:https://docs.convex.dev/auth/clerk - **WorkOS 集成**:https://docs.convex.dev/auth/authkit/ - Convex 使用 OpenID Connect JWT。 - 集成:Clerk、WorkOS AuthKit、Auth0;也支持自定义 OIDC。 - Convex Auth(Beta):内置库(labs.convex.dev),支持 Magic Links、OTP、OAuth 和密码,无需外部服务。 - 身份:通过服务器函数中的 `ctx.auth.getUserIdentity()` 获取。 - 授权:按每个公共函数强制执行;敏感逻辑必须使用内部函数。
身份验证操作
  • 在函数中:ctx.auth.getUserIdentity() 会返回 tokenIdentifier、subject、issuer 以及提供商声明。
  • 自定义 JWT 身份验证可能会以 identity["properties.email"] 这样的路径公开声明。
  • 用户存储模式:
    • 通过客户端 mutation 从 JWT 中存储用户,或通过提供商 webhook 执行用户 upsert。
    • 索引查询应使用 by_token / byExternalId。
  • Webhook:必须通过 HTTP actions 实现,并使用提供商 SDK 验证签名;签名密钥必须存储在环境变量中。
Convex Auth(Beta)特定说明
  • 支持的方法:
    1. Magic Links 和 OTP:基于电子邮件的链接或验证码。
    2. OAuth:GitHub、Google、Apple 等。
    3. 密码:支持重置流程和可选的电子邮件验证。
  • 组件:不提供 UI 组件;必须使用库 hooks 在 React 中自行构建。
  • Next.js:SSR/Middleware 支持仍处于实验或 beta 阶段。
服务器函数模式
  • 必须通过 ctx.auth.getUserIdentity() 读取身份。
  • 必须在每个公共函数中强制执行行级授权。
  • 不应通过公共函数公开敏感逻辑;应优先使用内部函数。
服务间访问
  • 如果没有可用的用户 JWT,应使用共享密钥模式。
  • 必须将密钥存储在部署环境变量中;不得硬编码。
客户端指南
  • 必须遵循提供商的快速入门指南;不得自行编造流程。
  • 不应在客户端专用代码中依赖身份验证数据,而不进行服务器端验证。

评论

支持 Markdown