用途:为已有 Phoenix 项目快速接入基于 open_api_spex 的 OpenAPI 3.0 文档,并配套 Swagger UI、用户认证与多租户 API Key 授权。前置条件是已有 Phoenix 项目,否则需先运行 /bootstrap-phoenix。
主要能力:用 mix phx.gen.auth Accounts User users 生成邮箱密码认证、会话令牌、登录注册 LiveView 与邮箱验证;通过 account_users 建立 User 与 Account 多对多关系,含 owner/admin/member 角色;API Key 支持 pk_ 前缀的只读公钥与 sk_ 前缀的读写私钥,按 user+account 归属并凭 SHA256 哈希校验;提供 bearer 认证 Plug,区分读写权限;可配置 CORS,并支持生成 TypeScript 类型。
使用方式:依次执行 phx.gen.auth、mix ecto.migrate;在 mix.exs 加入 {:open_api_spex, "~> 3.21"} 与可选的 {:cors_plug, "~> 3.0"} 后运行 mix deps.get;创建 Account、AccountUser、ApiKey 三个 schema 与对应迁移(用 mix ecto.gen.migration 生成),再运行 mix ecto.migrate。随后在 accounts 上下文中加入账户、成员关系与 API Key 相关函数,创建 ApiSpec 模块暴露 spec,并实现 ApiAuth Plug 校验 Authorization: Bearer 头。
适用场景:需要对外提供带文档和鉴权的 Phoenix JSON API,尤其是多租户、按账户隔离密钥、需区分只读与读写权限的项目。
限制:命令假设已有 Phoenix 项目;API Key 以哈希存储,创建时仅返回一次明文 token;资料未提供收费、价格或性能数据,CORS 属可选推荐配置,写入能力依赖 sk_ 私钥。