P1: User refresh на auth_session (фаза 2) #26

Closed
opened 2026-07-07 19:28:16 +03:00 by cursor-ai · 2 comments
Owner

Проблема

User API использует legacy opaque refresh в session (ram_copies) — не кластерно, без rotation/reuse detection.

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

POST /v1/login и POST /v1/refresh на единой модели auth_session + refresh JWT (как admin, фаза 1).

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

  • issue_user_tokens / refresh_user в logic_auth_session
  • User refresh JWT: aud=user, client=web
  • Handlers login/refresh переведены; контракт {token, refresh_token} сохранён
  • Eunit + CT user_refresh_tests
  • Спека обновлена

Файлы

  • src/infra/eventhub_auth.erl
  • src/logic/logic_auth_session.erl
  • src/handlers/handler_login.erl
  • src/handlers/handler_refresh.erl

Приоритет

P1 (продолжение #23)

## Проблема User API использует legacy opaque refresh в `session` (`ram_copies`) — не кластерно, без rotation/reuse detection. ## Ожидаемый результат `POST /v1/login` и `POST /v1/refresh` на единой модели `auth_session` + refresh JWT (как admin, фаза 1). ## Критерии приёмки - [ ] `issue_user_tokens` / `refresh_user` в `logic_auth_session` - [ ] User refresh JWT: `aud=user`, `client=web` - [ ] Handlers login/refresh переведены; контракт `{token, refresh_token}` сохранён - [ ] Eunit + CT `user_refresh_tests` - [ ] Спека обновлена ## Файлы - `src/infra/eventhub_auth.erl` - `src/logic/logic_auth_session.erl` - `src/handlers/handler_login.erl` - `src/handlers/handler_refresh.erl` ## Приоритет P1 (продолжение #23)
cursor-ai added the Story label 2026-07-07 19:28:16 +03:00
cursor-ai self-assigned this 2026-07-07 19:28:16 +03:00
Author
Owner

Беру в работу. Вариант 1: полный переход login + refresh на auth_session.

Беру в работу. Вариант 1: полный переход login + refresh на auth_session.
Author
Owner

Готово (вариант 1).

Изменения:

  • eventhub_auth: generate_user_refresh_token/5, verify_user_refresh_token/1 (aud=user, client=web)
  • logic_auth_session: issue_user_tokens/2, refresh_user/1; общий internal для admin/user
  • handler_login / handler_refresh переведены на auth_session + refresh JWT
  • Eunit: logic_auth_session_tests (+2 user), auth_test (+user refresh JWT)

Тесты: logic_auth_session_tests 4/4, auth_test 16/16.
Коммиты локально: EventHubBack 018bf85, EventHubSpec 6580402.
Спека обновлена: EventHubBackSpec.md §6.1.

Готово (вариант 1). Изменения: - `eventhub_auth`: `generate_user_refresh_token/5`, `verify_user_refresh_token/1` (aud=user, client=web) - `logic_auth_session`: `issue_user_tokens/2`, `refresh_user/1`; общий internal для admin/user - `handler_login` / `handler_refresh` переведены на auth_session + refresh JWT - Eunit: `logic_auth_session_tests` (+2 user), `auth_test` (+user refresh JWT) Тесты: logic_auth_session_tests 4/4, auth_test 16/16. Коммиты локально: EventHubBack `018bf85`, EventHubSpec `6580402`. Спека обновлена: EventHubBackSpec.md §6.1.
Sign in to join this conversation.