Files
test-keycloak-auth-app/src/script.ts
Николай Вигдоров b85974527c init
2025-07-13 11:40:36 +03:00

44 lines
1.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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 = 'Не удалось подключиться к серверу авторизации.';
});