用途
Convex Auth 用于在 Convex 应用中实现身份认证与授权模式,支持通过 OIDC 提供商或 Convex Auth 方案进行集成。适用于认证提供商配置、ctx.auth 使用、用户身份读取等场景。
主要能力
身份读取
在函数中,ctx.auth.getUserIdentity() 返回 tokenIdentifier、subject、issuer 以及提供商声明(claims)。自定义 JWT 认证可能以 identity["properties.email"] 风格的路径暴露声明。
用户存储模式
- 通过客户端 mutation 从 JWT 存储用户,或通过提供商 webhook 进行用户 upsert。
- 索引查找应使用
by_token/byExternalId。
Webhook
必须通过 HTTP actions 实现,并使用提供商 SDK 验证签名;签名密钥必须存储在环境变量中。
Convex Auth(Beta)支持的方法
- 魔法链接与 OTP:基于电子邮件的链接或验证码。
- OAuth:GitHub、Google、Apple 等。
- 密码:支持重置流程和可选的邮箱验证。
- 组件:不提供 UI 组件,必须使用库钩子在 React 中自行构建。
- Next.js:SSR/中间件支持处于实验/测试阶段。
服务端函数模式
- 必须通过
ctx.auth.getUserIdentity()读取身份。 - 必须在每个公开函数中强制执行行级授权。
- 不应通过公开函数暴露敏感逻辑,优先使用内部函数。
服务间访问
如果没有可用的用户 JWT,应使用共享密钥模式。密钥必须存储在部署环境变量中,不得硬编码。
客户端指导
必须遵循提供商快速入门,不得自行发明流程。不应在仅客户端代码中依赖认证数据而不进行服务端验证。
使用方式
该技能以指导性规则形式提供认证与授权实现模式,具体安装命令、代码示例和配置步骤暂未提供。
适用场景
适用于需要在 Convex 应用中集成认证提供商、实现用户身份管理、行级授权、Webhook 用户同步以及服务间安全访问的开发者。
限制
- Convex Auth 处于 Beta 阶段。
- Next.js 的 SSR/中间件支持为实验/测试阶段。
- 不提供 UI 组件,需自行构建。
- 具体安装命令、代码示例和配置细节暂未提供。