init
This commit is contained in:
43
src/script.ts
Normal file
43
src/script.ts
Normal 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 = 'Не удалось подключиться к серверу авторизации.';
|
||||
});
|
||||
Reference in New Issue
Block a user