用途:OpenAuth 用于构建、部署并验证自托管的 OAuth 2.0 与 OIDC 认证服务器,基于 @openauthjs/openauth,适合不想依赖第三方托管鉴权服务的项目。
主要能力:通过 createSubjects 配合 Standard Schema 校验器(Valibot、Zod)定义用户声明与类型化令牌结构;提供预置界面 PasswordUI(用户名密码)与 CodeUI(邮箱 OTP 验证码),支持 GitHub、Google、Discord、Apple 及自定义 OIDC 等社交登录提供方;客户端可用 createClient 的 authorize、exchange、verify 完成授权、换码与令牌校验,并支持令牌刷新轮转。
使用方式:issuer() 返回 Hono 应用实例。Cloudflare Workers 与 Bun 可 export default app 直接导出;Node.js 需用 @hono/node-server 包装;AWS Lambda 用 hono/aws-lambda 包装。存储方面 Cloudflare Workers 用 CloudflareStorage(KV),AWS Lambda 用 DynamoStorage。需先检查 package.json 中的依赖、subjects.ts 结构以及 GITHUB_CLIENT_ID、GITHUB_CLIENT_SECRET 等环境变量与 issuer URL。交付物通常包括完整的 subjects.ts、含显式存储与 provider 定义的 issuer.ts,以及展示授权、换码、校验和刷新 Cookie 更新的客户端集成。
限制与注意:不要在生产无服务器环境使用 MemoryStorage;client.verify() 返回的新令牌必须写入 HTTP-only Cookie;重定向 URI 需严格白名单校验;提供方密钥与签名私钥只能留在服务端,不可打包进客户端代码。不适用于集成 Clerk、Auth0、Supabase Auth 等第三方托管 SDK,也不适用于传统有状态会话(express-session、Redis 会话),以及 Discord、Telegram 内嵌应用鉴权。具体版本与 API 兼容性以官方资料为准,本资料未提供价格信息。