@@ -73,31 +73,45 @@ sequenceDiagram
7373participant "Клиент (Пользователь из браузера)" as Client
7474participant "Syncmaster"
7575participant "Keycloak"
76+
7677Client ->> Syncmaster : Запрос на конечную точку, требующую аутентификации (/v1/users)
78+
79+ Syncmaster --x Client: Перенаправление на URL-адрес входа в Keycloak (если нет токена доступа)
80+
7781Client ->> Keycloak : Обратное перенаправление на страницу входа Keycloak
7882alt Успешный вход
7983Client ->> Keycloak : Вход с логином и паролем
80- else
84+ else Login failed
85+ Keycloak --x Client: Отображение ошибки (401 Неавторизован)
8186end
87+
8288Keycloak ->> Client : Перенаправление в Syncmaster на конечную точку обратного вызова с кодом
8389Client ->> Syncmaster : Запрос обратного вызова на /v1/auth/callback с кодом
8490Syncmaster->> Keycloak : Обмен кода на токен доступа
8591Keycloak ->> Syncmaster : Возврат JWT токена
8692Syncmaster ->> Client : Установка JWT токена в браузере пользователя в куках и перенаправление на /v1/users
93+
8794Client ->> Syncmaster : Перенаправление на /v1/users
8895Syncmaster ->> Syncmaster : Получение информации о пользователе из JWT токена и проверка пользователя во внутренней базе данных сервера
8996Syncmaster ->> Syncmaster : Создание пользователя во внутренней базе данных сервера, если не существует
97+ Syncmaster ->> Client: Возврат запрошенных данных
98+
9099alt Успешный случай
91100Client ->> Syncmaster : Запрос данных с JWT токеном
92101Syncmaster ->> Syncmaster : Получение информации о пользователе из JWT токена и проверка пользователя во внутренней базе данных сервера
93102Syncmaster ->> Syncmaster : Создание пользователя во внутренней базе данных сервера, если не существует
94- else
103+ Syncmaster ->> Client: Возврат запрошенных данных
104+
105+ else Access token is expired
95106Syncmaster ->> Keycloak : Получение нового JWT токена через токен обновления
96107Keycloak ->> Syncmaster : Возврат нового JWT токена
97108Syncmaster ->> Syncmaster : Получение информации о пользователе из JWT токена и проверка пользователя во внутренней базе данных сервера
98109Syncmaster ->> Syncmaster : Создание пользователя во внутренней базе данных сервера, если не существует
99- else
110+ Syncmaster ->> Client: Возвращает запрошенные данные и устанавливает новый токен JWT в браузере пользователя в файлах cookie.
111+ else Refresh token is expired
112+ Syncmaster --x Client: Перенаправление на URL-адрес входа в Keycloak
100113end
114+
101115deactivate Client
102116```
103117
0 commit comments