name: auth-edge description: | Краевые случаи аутентификации и сессий. Регресс на refresh-token flow (получение, ротация, отзыв), подделка JWT, повторный signup, вход деактивированного юзера, вход юзера архивной орги. preconditions: reset_db: true smoke_login_super_admin: true steps: - id: step01_bootstrap_admin title: "SuperAdmin создаёт орг + админа, получаем access+refresh" - id: step02_refresh_token_works title: "Refresh: старый access обменивается на новые access+refresh" - id: step03_refresh_token_rotates title: "После refresh — старый refresh-token больше не работает (rotation)" - id: step04_invalid_refresh_rejected title: "Невалидный refresh-token возвращает 400 invalid_grant" - id: step05_tampered_jwt_rejected title: "JWT с подделанным org_id (изменён без переподписи) отшивается 401" - id: step06_random_jwt_rejected title: "Случайный JWT-подобный токен из другого ключа отшивается 401" - id: step07_deactivated_user_blocked title: "Деактивация User.IsActive=false: повторный login и refresh возвращают 400" - id: step08_archived_org_blocks_login title: "Архивная организация: login существующего админа возвращает 400 invalid_grant" - id: step09_duplicate_signup_blocked title: "Повторный signup с тем же email живой орги отвергается 400" - id: step10_orphan_signup_reactivates title: "Signup с email orphan-юзера (его org удалена) — реактивирует с новой org"