# pinme-auth

Скилл подключает аутентификацию в проектах PinMe на TypeScript: создание пользователей, проверка id_token, выборка по uid и постраничный список.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 507 установок · ★ 3754
- Автор: glitternetwork
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/glitternetwork/pinme/tree/HEAD/skills/pinme-auth/SKILL.md
- Обновлён: 2026-09-12
- HTML: https://affpapa.org/nevibecode/skills/pinme-auth

## Что делает

Скилл описывает, как из воркера PinMe на TypeScript обращаться к прокси-эндпоинтам Identity Platform. Внутри четыре вызова: создание пользователя по email и паролю, проверка `id_token`, получение одного пользователя по `uid` и список с пагинацией. Для каждого есть готовый TypeScript-пример и таблица ошибок, так что код обработки ответов не придётся придумывать.

Все запросы требуют двух вещей: заголовок `X-API-Key` и query-параметр `project_name`. Сервер сначала сверяет, что ключ и имя проекта описывают один и тот же проект, и только потом ищет у него `tenant_id`. Если пара не сходится, вернёт 401, а при отсутствии `X-API-Key` тоже 401 — без ключа любой эндпоинт закрыт.

Есть неочевидный момент с проверкой токена. Просроченный или битый `id_token` даёт 401, а валидный токен с неподтверждённой почтой — 403. Скилл советует различать эти два случая, поэтому в примере рядом с ошибкой стоит флаг для сценария «пользователь ещё не нажал ссылку в письме». Созданный аккаунт до подтверждения тоже не пройдёт проверку.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add glitternetwork/pinme --skill pinme-auth -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/pinme-auth/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/pinme-auth/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add glitternetwork/pinme --skill pinme-auth -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/pinme-auth/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add glitternetwork/pinme --skill pinme-auth -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/pinme-auth/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install glitternetwork/pinme pinme-auth
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/pinme-auth/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add glitternetwork/pinme --skill pinme-auth -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/glitternetwork/pinme --path skills/pinme-auth
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/pinme-auth/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add glitternetwork/pinme --skill pinme-auth -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/glitternetwork/pinme/tree/HEAD/skills/pinme-auth/SKILL.md

## Когда брать
- создать пользователя по email и паролю из воркера PinMe
- проверить `id_token` после входа и вытащить `uid`
- отличить неподтверждённую почту от протухшего токена
- получить профиль пользователя по `uid`
- пройти по всем пользователям проекта через `next_page_token`

## Примеры запросов агенту
- Добавь в `backend/src/worker.ts` регистрацию через `create_user`, пароль и почту возьми из тела запроса
- Сделай эндпоинт, который проверяет `id_token` и отдаёт 403, если почта не подтверждена
- Напиши функцию, которая листает `list_users` по `next_page_token` и собирает всех в массив

## Похожие
- [mcp-builder](https://affpapa.org/nevibecode/skills/mcp-builder.md) — скилл · 130949 установок
- [claude-api](https://affpapa.org/nevibecode/skills/claude-api.md) — скилл · 74198 установок
- [lark-im](https://affpapa.org/nevibecode/skills/lark-im.md) — скилл · 472900 установок
- [lark-event](https://affpapa.org/nevibecode/skills/lark-event.md) — скилл · 466800 установок
- [caveman-discover](https://affpapa.org/nevibecode/skills/caveman-discover.md) — скилл · 104400 установок
- [migration](https://affpapa.org/nevibecode/skills/migration.md) — скилл · 103900 установок

Из того же набора: [glitternetwork/pinme](https://affpapa.org/nevibecode/by/glitternetwork/pinme.md) — 5 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
