docs(specs): archive auth and cache remediation
This commit is contained in:
@@ -19,6 +19,10 @@
|
||||
- **WHEN** пользователь регистрирует email, уже принадлежащий User после нормализации
|
||||
- **THEN** система отвечает `409` Problem Details с code `EMAIL_ALREADY_REGISTERED`
|
||||
|
||||
#### Scenario: Конкурентная регистрация
|
||||
- **WHEN** два запроса одновременно регистрируют один нормализованный email
|
||||
- **THEN** ровно один запрос создаёт User и Session, а второй отвечает `409` Problem Details с code `EMAIL_ALREADY_REGISTERED`
|
||||
|
||||
#### Scenario: Невалидные регистрационные данные
|
||||
- **WHEN** пользователь отправляет email или пароль, не соответствующий правилам регистрации
|
||||
- **THEN** система отвечает `400` Problem Details с code `VALIDATION_ERROR` и указателями на невалидные поля
|
||||
@@ -41,13 +45,17 @@
|
||||
- **WHEN** клиент отправляет действительный refresh-cookie
|
||||
- **THEN** система заменяет refresh-cookie и возвращает новый access token и профиль Session
|
||||
|
||||
#### Scenario: Конкурентное восстановление сессии
|
||||
- **WHEN** два запроса одновременно отправляют один действительный refresh-cookie одной Session
|
||||
- **THEN** ровно один запрос заменяет refresh-cookie и возвращает новый access token и профиль, второй отвечает `401` Problem Details с code `UNAUTHORIZED`, а Session победителя остаётся активной
|
||||
|
||||
#### Scenario: Истёкшая сессия
|
||||
- **WHEN** клиент отправляет refresh-cookie Session, не обновлявшейся более 7 дней
|
||||
- **THEN** система удаляет refresh-cookie и отвечает `401` Problem Details с code `UNAUTHORIZED`
|
||||
|
||||
#### Scenario: Повторное использование refresh token
|
||||
- **WHEN** клиент отправляет refresh token, заменённый предыдущим успешным refresh
|
||||
- **THEN** система отзывает только связанную Session, удаляет refresh-cookie и отвечает `401` Problem Details с code `UNAUTHORIZED`
|
||||
- **THEN** система удаляет refresh-cookie и отвечает `401` Problem Details с code `UNAUTHORIZED`, не отзывая связанную Session только из-за этого запроса
|
||||
|
||||
### Requirement: Завершение сессии
|
||||
Система SHALL позволять завершить текущую Session через logout. Logout MUST отозвать Session, если refresh-cookie соответствует активной Session, и MUST удалить refresh-cookie. Logout MUST быть идемпотентным и не раскрывать существование Session.
|
||||
|
||||
Reference in New Issue
Block a user