---
id: auth-me
title: "GET /api/auth/me — Кто я (сессия)"
domain: auth
kind: api-method
http: "GET /api/auth/me"
---

# GET /api/auth/me — Кто я (сессия) {#auth-me}

## Сводка

| Поле | Значение |
|---|---|
| **HTTP** | `GET /api/auth/me` |
| **Auth** | `optionalAuth` — гость + авторизованный |
| **Scope токена** | `read` |
| **PG-функции** | `api.validate_session` |
| **Таблицы** | `session`, `user` |
| **SRM** | SRM-088 |
| **RP (права)** | RP-091 |
| **Файл роута** | `server/routes/auth.js` |
| **Статус** | done |

**Аргументы запроса** (best-effort из хендлера; путь-параметры опущены):

_аргументов не обнаружено (подтвердить вручную по `server/routes/auth.js`)_

**Коды ответов/ошибок** (из хендлера): `200` — _уточнить причины вручную_

Это сессионный «кто я» — он смотрит на **cookie**, а не на токен. Под Bearer-токеном без cookie он вернёт `user: null`, потому что сессии у токена нет. Чтобы агенту узнать, под кем он работает (владелец + активная организация), нужен соседний эндпоинт [`GET /api/users/me`](users-me.md#auth-users-me) — он понимает токен и отдаёт профиль актора с аффордансом `whoami`.

Тела у запроса нет. Чтение — хватает scope `read` (см. [Конвенции](../../../shared/conventions.md#conventions)). Ответ `200` для cookie-сессии:

```json
{ "user": { "id": "a1b2c3d4-...", "email": "user@example.com", "displayName": "Иван" } }
```

Для анонимного запроса — `{ "user": null }`. Markdown-зеркала и аффордансов у этого метода нет; агентный self-ресурс — это `/api/users/me` (`server/agent/affordances.js`, аффорданс `whoami`).

<!-- gen:start:related -->
## Связанные
- Экраны: [Аккаунт](../screens/account.md#auth-screen-account)
- [Конвенции](../../../shared/conventions.md#conventions) · [Роли](../../../shared/roles.md#roles) · [Ошибки](../../../shared/errors.md#errors) · [Глоссарий](../../../shared/glossary.md#glossary)
<!-- gen:end:related -->

---

Human view: https://docs.vnimanie.ai/specbuilder/v1/domains/auth/api/me/