开发与工程 authenticationidentity-platformuser-managementfrontendworkertypescriptfirebase-auth

PinMe Worker 认证 API 集成

在 PinMe Worker (TypeScript) 中集成用户认证,包括创建用户、验证 ID Token、查询和列出用户。

FollowSkills 评估 · FSRS-2.0
不推荐
59/ 100 五分制 3.0 / 5
1 2 3 4 5 6
1信任安全14 / 25 · 2.8/5

证据显示技能明确要求将项目 API Key 仅用于服务端 Worker,前端只能使用 public_client_config 中的 Firebase Web API Key,并强调不要直接持有项目 api_key,体现了最小权限原则。同时文档清晰说明了认证方式(X-API-Key + project_name)和错误处理,但缺少用户确认机制和具体的数据流向披露,且未见回滚机制的具体描述(除创建用户时提到自动回滚)。因此扣除权限最小化不完整、确认机制缺失、隔离和恢复不完善的分数。

2可靠稳定9 / 20 · 2.3/5

技能文档提供了多个 API 的 TypeScript 示例和错误码表,看起来自洽,但缺乏针对 auth 接口的自动化测试用例。仓库中存在 CLI 测试,但未覆盖技能的核心路径(如 create_user, verify_token 等)。静态审查无法确认代码真实运行情况,因此按限制可靠性与执行相关的最高分,因无测试覆盖主要路径而扣除。

3适用触发10 / 15 · 3.3/5

技能明确说明了适用场景(PinMe Worker 项目需要集成用户认证)和环境要求(Node.js、PinMe CLI),但边界条件(如非 PinMe 项目时不适用)未明确说明。未提及对中国大陆网络的可达性,因为核心功能依赖 pinme.cloud 等服务,可能在大陆不可达,因此扣除环境适配分。

4规范维护12 / 15 · 4.0/5

技能文档结构清晰,包含环境变量、认证方式、通用错误、API 详情和示例,但缺少安装步骤、版本记录和变更日志。虽有无限制说明,但未明确维护责任和更新路径。许可证 MIT 明确,但作者信息不明确,因此扣除治理和可维护性分。

5有效结果8 / 15 · 2.7/5

技能描述了完整的任务流程(创建用户、验证 token、查询用户、列出用户),并给出了可直接使用的 TypeScript 示例代码,但未验证这些代码在真实环境中的运行结果。用户需要依赖 PinMe 平台服务,边际价值在于简化集成,但缺乏实际执行验证,因此扣除直接可用性分。

6证据核验6 / 10 · 3.0/5

仓库中包含 CI 工作流和大量测试脚本,但测试未覆盖技能中的 auth 接口调用。技能文档中的 API 示例和错误码表属于作者声明,缺乏独立验证。静态审查只能查看文件,无法执行,因此证据有限,扣除验证分。

证据充分度: 评估于 2026年8月7日 审查版本 7822b0501607
使用前请注意
  • 技能依赖 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 进行校验。

  1. 在 PinMe Worker 项目中实现邮箱密码注册功能,并需要处理邮箱验证流程。
  2. 验证前端登录返回的 id_token,区分 token 无效与邮箱未验证两种错误场景。
  3. 根据用户 uid 查询完整用户信息,用于后台管理或用户详情展示。
  4. 批量获取项目所有用户,用于用户列表管理或数据同步。

这个 Skill 有哪些优点和局限?

优点
  • 清晰的 API 文档和 TypeScript 示例,简化集成过程。
  • 统一认证方式,简化了权限验证。
  • 覆盖了常见错误场景,如邮箱未验证(403)。
  • 提供了分页遍历所有用户的完整示例。
局限
  • 仅适用于 PinMe 平台,在其他平台上无法直接使用。
  • 文档以中文为主,英文用户可能面临语言障碍。
  • 依赖 PinMe CLI 创建的项目结构。
  • 未提及测试用例或测试框架,可能缺少验证。

如何安装这个 Skill?

该技能是 PinMe 项目模板的一部分,随 pinme create 生成。若需单独安装技能包,可运行 npx skills add glitternetwork/pinme(来自 README)。技能文件位于对应仓库的 skills/pinme-auth/SKILL.md

如何使用这个 Skill?

  1. 确保 Worker 项目的环境变量包含 DB(D1 数据库)、API_KEY(项目 API Key)、PROJECT_NAME(项目名),并可选用 BASE_URL 覆盖默认的 https://pinme.cloud
  2. 在 TypeScript 代码中,引入技能提供的示例函数(如 createAuthUserverifyAuthToken)或根据自己的需求实现。
  3. 调用时,必须同时设置 X-API-Key 请求头和 project_name 查询参数。
  4. 前端集成时,使用 pinme create 生成的 public_client_config 初始化 Firebase Auth SDK,并设置 tenant_id。前端获取 id_token 后,将其发给 Worker,再由 Worker 调用 verify_token 校验。

常见问题

该技能需要付费吗?
使用该技能本身是免费的,但 PinMe 平台的服务可能需要付费,具体参考 PinMe 的定价。
如何获取 API_KEY 和 PROJECT_NAME?
通常在 `pinme create` 或 `pinme set-appkey` 后获得,详细参考 PinMe 文档。
如果 verify_token 返回 403 怎么办?
403 表示邮箱未验证,应提示用户检查邮箱并点击验证链接,而非当作 token 失效。

同仓库的其他 Skills

均来自 glitternetwork/pinme

相关 Skills