P2: client_type=mobile (когда появится клиент) #74

Closed
opened 2026-08-14 16:15:20 +03:00 by cursor-ai · 2 comments
Owner

Проблема

Нужно управление своими user-сессиями (список/отзыв) и задел client_type=mobile + метка устройства.

Ожидаемый результат

API sessions + login client_type/device_name/UA; UI — Front#72. Без kick-on-login.

Критерии приёмки

  • GET/DELETE /v1/sessions, POST /v1/sessions/revoke-others
  • Login: client_type web|mobile, device_name, User-Agent; session_id в login/refresh
  • Unit-тесты зелёные
  • Spec обновлена; Front UI — EventHub/EventHubFront#72

Родитель

EventHub/EventHubSpec#8 (волна 7)

Приоритет

P2

## Проблема Нужно управление своими user-сессиями (список/отзыв) и задел `client_type=mobile` + метка устройства. ## Ожидаемый результат API sessions + login `client_type`/`device_name`/UA; UI — Front#72. Без kick-on-login. ## Критерии приёмки - [x] `GET/DELETE /v1/sessions`, `POST /v1/sessions/revoke-others` - [x] Login: `client_type` web|mobile, `device_name`, User-Agent; `session_id` в login/refresh - [x] Unit-тесты зелёные - [x] Spec обновлена; Front UI — https://git.sabilin.com/EventHub/EventHubFront/issues/72 ## Родитель https://git.sabilin.com/EventHub/EventHubSpec/issues/8 (волна 7) ## Приоритет P2
cursor-ai added the FutureTask labels 2026-08-14 16:15:20 +03:00
cursor-ai self-assigned this 2026-08-14 16:15:20 +03:00
Author
Owner

Беру в работу.

Уточнённый scope

  • API управления своими сессиями: GET/DELETE /v1/sessions, POST /v1/sessions/revoke-others
  • На login: опционально client_type (web|mobile) и device_name; сервер сохраняет User-Agent
  • В ответах login/refresh — session_id
  • UI списка сессий с устройством — связанный issue во Front

kick-on-login / native mobile client — не в этом issue.

Беру в работу. ## Уточнённый scope - API управления своими сессиями: `GET/DELETE /v1/sessions`, `POST /v1/sessions/revoke-others` - На login: опционально `client_type` (web|mobile) и `device_name`; сервер сохраняет User-Agent - В ответах login/refresh — `session_id` - UI списка сессий с устройством — связанный issue во Front kick-on-login / native mobile client — не в этом issue.
Author
Owner

Готово (Back#74)

API

  • GET /v1/sessions, DELETE /v1/sessions/:id, POST /v1/sessions/revoke-others
  • Login: client_type (web|mobile), device_name; UA в сессии; ответ session_id
  • Refresh/admin login тоже отдают session_id; refresh сохраняет client из сессии
  • Миграция 20260816180000_auth_session_device

Тесты

rebar3 eunit — core_auth_session / logic_auth_session / infra_cleanup / admin_handler_refresh: 25 passed

Spec

EventHubBackSpec + EventHubFrontSpec обновлены

Front

UI: EventHub/EventHubFront#72

## Готово (Back#74) ### API - `GET /v1/sessions`, `DELETE /v1/sessions/:id`, `POST /v1/sessions/revoke-others` - Login: `client_type` (web|mobile), `device_name`; UA в сессии; ответ `session_id` - Refresh/admin login тоже отдают `session_id`; refresh сохраняет `client` из сессии - Миграция `20260816180000_auth_session_device` ### Тесты `rebar3 eunit` — core_auth_session / logic_auth_session / infra_cleanup / admin_handler_refresh: 25 passed ### Spec `EventHubBackSpec` + `EventHubFrontSpec` обновлены ### Front UI: https://git.sabilin.com/EventHub/EventHubFront/issues/72
Sign in to join this conversation.