⟨/⟩ 65_Ui/Pages/LogoutPage.cs

48 строк · в начало

using Ban.Sdaid.Notation.Documents;
using Ban.Sdaid.Icd;
using Ban.Sdaid.Icd.Api.Endpoints.Auth.Logout;

namespace Ban.Sdaid.Icd.Ui.Pages
{
    /// <summary>Технический экран выхода — очищает сессию и уводит на вход.</summary>
    public class LogoutPage : IPageDocument, IFolder<UiFolder>, IHasStructuralLinks
    {
        public SdaidLink[] Links => new[]
        {
            Rel.Uses<DOC_Logout>(),
        };

        public string Name => "Выход";

        public static string _refName = "экран «Выход»";

        public string Description =>
            @"Технический маршрут /logout: отзывает токен на бэкенде, очищает сессию и перенаправляет на вход. Пользователю не показывается.";

        public string Version => "0.1";
        public string Status => "draft";
        public string[] Comments => new string[0];

        public static string S1_Purpose = $"""
            ## Назначение

            Единая точка выхода. Любое действие «выйти» в приложении навигирует на `/logout`, а не зовёт
            очистку сессии напрямую — так поведение выхода описано в одном месте. Шаблон пустой (или короткий
            индикатор): экран существует ради эффекта, а не содержимого.
            """;

        public static string S2_Behavior = $"""
            ## Поведение

            При открытии:

            1. Отозвать токен на бэкенде ({nameof(Ban.Sdaid.Icd.Api.Endpoints.Auth.Logout.DOC_Logout)}).
            2. Очистить сессию (токен из хранилища, профиль, claims).
            3. Перейти на `/login`.

            Даже если отзыв на бэке не удался, локальная сессия всё равно очищается — пользователь выходит.
            Детали — {nameof(Ban.Sdaid.Icd.Arch.Tech.Angular.ADR_UI_010_Auth)}.
            """;
    }
}