This commit is contained in:
Николай Вигдоров
2025-07-13 11:40:36 +03:00
commit b85974527c
8 changed files with 1072 additions and 0 deletions

43
src/script.ts Normal file
View File

@ -0,0 +1,43 @@
// src/script.ts
import Keycloak from 'keycloak-js';
// 1. Конфигурация клиента Keycloak
const keycloak = new Keycloak({
url: 'https://auth.vigdorov.ru', // URL вашего сервера Keycloak
realm: 'dev-apps', // Имя вашего realm
clientId: 'test-localapp', // Client ID вашего приложения
});
// 2. Получаем доступ к элементам на странице
const greetingElement = document.querySelector('h1')!;
const actionButton = document.querySelector('button')!;
// 3. Функция для обновления UI в зависимости от статуса авторизации
const updateUI = () => {
if (keycloak.authenticated) {
// Если пользователь залогинен
const userName = keycloak.tokenParsed?.given_name || keycloak.tokenParsed?.preferred_username;
greetingElement.textContent = `Привет, ${userName}!`;
actionButton.textContent = 'Выйти';
actionButton.onclick = () => keycloak.logout();
} else {
// Если пользователь не залогинен
greetingElement.textContent = 'Привет, гость!';
actionButton.textContent = 'Войти';
actionButton.onclick = () => keycloak.login();
}
};
// 4. Инициализация Keycloak
keycloak
.init({onLoad: 'check-sso'})
.then(authenticated => {
console.log(authenticated ? 'Пользователь аутентифицирован' : 'Пользователь не аутентифицирован');
updateUI(); // Обновляем UI после инициализации
})
.catch(error => {
console.error('Ошибка инициализации Keycloak', error);
greetingElement.textContent = 'Не удалось подключиться к серверу авторизации.';
});