Skills

Pinme Auth

Use when a PinMe project (Worker TypeScript) needs to integrate user authentication, ...

Install

npx skills add glitternetwork/pinme --skill pinme-auth -g -a claude-code -y
Repository
glitternetwork/pinme3.8k
Category
Engineering
Updated
2mo ago
License
MIT
Context cost
Mediumabout 2,497 tokens
Runs scripts
No, instructions only

What it does

Use when a PinMe project (Worker TypeScript) needs to integrate user authentication, creating email/password users, verifying id_tokens, querying user info, or listing users via Identity Platform auth proxy APIs.

PinMe Worker Auth API Integration

Guides how to call PinMe platform's Identity Platform auth proxy APIs in a PinMe Worker (TypeScript).

Environment Variables

// backend/src/worker.ts
export interface Env {
  DB: D1Database;
  API_KEY: string;       // 项目 API Key, 用于所有 auth 接口认证
  PROJECT_NAME: string;  // 项目名, 所有 auth 接口必须同时传递
  BASE_URL?: string;     // 可选,默认 https://pinme.cloud
}

API_KEY 和 PROJECT_NAME 是所有 auth 接口的必填凭证,缺一不可。


认证方式(所有接口通用)

参数传递方式必填说明
X-API-Key请求头是项目 API Key
project_nameQuery 参数是必须与 X-API-Key 对应同一个项目

服务端会先校验这两个字段是否匹配同一个项目,再从项目配置中取出 tenant_id,然后转调 Identity Platform。


通用错误

场景HTTPdata.error
缺少 X-API-Key401X-API-Key header is required
缺少 project_name400project_name is required
API Key 和项目不匹配401Invalid API key or project name
项目未配置认证租户400Auth service not configured for this project

通用 TypeScript 类型

type ApiEnvelope<T> = {
  code: number   // 200=成功,其他=失败
  msg: string    // "ok" | "fail" | "invalid param"
  data: T
}

type ApiErrorData = { error?: string }

type UserInfo = {
  uid: string
  email: string
  display_name: string
  photo_url?: string
  disabled: boolean
  email_verified: boolean
}

API 1: 创建用户

Endpoint: POST {BASE_URL}/api/v1/auth/create_user?project_name={project_name}

仅用于邮箱密码注册。成功时用户已创建且验证邮件已发出;失败时自动回滚,不会留下僵尸账号。

创建成功后用户默认仍是"未验证"状态,需点击邮件验证链接后,verify_token 才能通过校验。

请求体

{ "email": "alice@example.com", "password": "Test@12345678", "display_name": "Alice" }
字段类型必填
emailstring是
passwordstring是
display_namestring否

错误

Read the whole SKILL.md on GitHub

More in Engineering