PinMe Worker 认证 API 集成
在 PinMe Worker (TypeScript) 中集成用户认证,包括创建用户、验证 ID Token、查询和列出用户。
证据显示技能明确要求将项目 API Key 仅用于服务端 Worker,前端只能使用 public_client_config 中的 Firebase Web API Key,并强调不要直接持有项目 api_key,体现了最小权限原则。同时文档清晰说明了认证方式(X-API-Key + project_name)和错误处理,但缺少用户确认机制和具体的数据流向披露,且未见回滚机制的具体描述(除创建用户时提到自动回滚)。因此扣除权限最小化不完整、确认机制缺失、隔离和恢复不完善的分数。
技能文档提供了多个 API 的 TypeScript 示例和错误码表,看起来自洽,但缺乏针对 auth 接口的自动化测试用例。仓库中存在 CLI 测试,但未覆盖技能的核心路径(如 create_user, verify_token 等)。静态审查无法确认代码真实运行情况,因此按限制可靠性与执行相关的最高分,因无测试覆盖主要路径而扣除。
技能明确说明了适用场景(PinMe Worker 项目需要集成用户认证)和环境要求(Node.js、PinMe CLI),但边界条件(如非 PinMe 项目时不适用)未明确说明。未提及对中国大陆网络的可达性,因为核心功能依赖 pinme.cloud 等服务,可能在大陆不可达,因此扣除环境适配分。
技能文档结构清晰,包含环境变量、认证方式、通用错误、API 详情和示例,但缺少安装步骤、版本记录和变更日志。虽有无限制说明,但未明确维护责任和更新路径。许可证 MIT 明确,但作者信息不明确,因此扣除治理和可维护性分。
技能描述了完整的任务流程(创建用户、验证 token、查询用户、列出用户),并给出了可直接使用的 TypeScript 示例代码,但未验证这些代码在真实环境中的运行结果。用户需要依赖 PinMe 平台服务,边际价值在于简化集成,但缺乏实际执行验证,因此扣除直接可用性分。
仓库中包含 CI 工作流和大量测试脚本,但测试未覆盖技能中的 auth 接口调用。技能文档中的 API 示例和错误码表属于作者声明,缺乏独立验证。静态审查只能查看文件,无法执行,因此证据有限,扣除验证分。
- 技能依赖 PinMe 平台服务(pinme.cloud)和 Firebase Auth,在中国大陆网络环境下可能不可达,请评估网络可达性。
- 技能未提供用户确认步骤,自动部署或执行敏感操作时请注意权限控制。
- API Key 和 project_name 是敏感凭证,确保不泄露,尤其是在自动化环境中。
- 技能中的示例代码未经实际验证,使用前请自行测试。
这个 Skill 能做什么,适合哪些场景?
该技能指导如何在 PinMe Worker(TypeScript)中调用 PinMe 平台的 Identity Platform 认证代理 API。它涵盖了环境变量设置、通用认证方式(X-API-Key 请求头 + project_name 查询参数)、通用错误处理和 TypeScript 类型。提供的 API 包括创建用户(create_user)、校验 id_token(verify_token)、查询单个用户(get_user)和列出用户(list_users),并包含完整的前端集成示例(使用 Firebase Auth)。该技能是 PinMe 项目模板的一部分,要求 Worker 环境已配置或可配置这些 API 密钥和环境变量。
提供四个认证代理 API 的调用指南和 TypeScript 示例:
- 创建用户(邮箱密码注册,自动发送验证邮件)
- 校验 id_token(支持邮箱密码和 Google 登录)
- 查询单个用户信息
- 分页列出所有用户
同时说明了如何通过环境变量配置 API 密钥和项目名,以及如何在前端使用 Firebase Auth 获取 id_token,并最终由 Worker 调用 verify_token 进行校验。
- 在 PinMe Worker 项目中实现邮箱密码注册功能,并需要处理邮箱验证流程。
- 验证前端登录返回的 id_token,区分 token 无效与邮箱未验证两种错误场景。
- 根据用户 uid 查询完整用户信息,用于后台管理或用户详情展示。
- 批量获取项目所有用户,用于用户列表管理或数据同步。
这个 Skill 有哪些优点和局限?
- 清晰的 API 文档和 TypeScript 示例,简化集成过程。
- 统一认证方式,简化了权限验证。
- 覆盖了常见错误场景,如邮箱未验证(403)。
- 提供了分页遍历所有用户的完整示例。
- 仅适用于 PinMe 平台,在其他平台上无法直接使用。
- 文档以中文为主,英文用户可能面临语言障碍。
- 依赖 PinMe CLI 创建的项目结构。
- 未提及测试用例或测试框架,可能缺少验证。
如何安装这个 Skill?
该技能是 PinMe 项目模板的一部分,随 pinme create 生成。若需单独安装技能包,可运行 npx skills add glitternetwork/pinme(来自 README)。技能文件位于对应仓库的 skills/pinme-auth/SKILL.md。
如何使用这个 Skill?
- 确保 Worker 项目的环境变量包含
DB(D1 数据库)、API_KEY(项目 API Key)、PROJECT_NAME(项目名),并可选用BASE_URL覆盖默认的https://pinme.cloud。 - 在 TypeScript 代码中,引入技能提供的示例函数(如
createAuthUser、verifyAuthToken)或根据自己的需求实现。 - 调用时,必须同时设置
X-API-Key请求头和project_name查询参数。 - 前端集成时,使用
pinme create生成的public_client_config初始化 Firebase Auth SDK,并设置tenant_id。前端获取 id_token 后,将其发给 Worker,再由 Worker 调用verify_token校验。