Files
ptpchat-frontend/src/main.ts
2024-05-04 14:25:25 +02:00

63 lines
2.0 KiB
TypeScript

import {createApp} from 'vue';
import {createPinia} from 'pinia';
import App from './App.vue';
import Keycloak, {type KeycloakConfig, type KeycloakInitOptions} from 'keycloak-js';
import { useKeycloakStore } from 'stores/keycloakStore';
import {useUserStore} from 'stores/user-store';
const app = createApp(App);
app.use(createPinia());
/**
* Initialisierungsoptionen für Keycloak.
* @param url URL zu Keycloak, Port definiert in keycloak_init.sh und quasar.config.js-Datei. Müssen identisch sein!
* @param realm Name des Realms, hinterlegt in realm-export.json von Keycloak und quasar.config.js-Datei. Müssen identisch sein!
* @param clientId Name des Clients, hinterlegt in realm-export.json von Keycloak und quasar.config.js-Datei. Müssen identisch sein!
* @param onLoad = 'login-required': Hierdurch wird zum Aufrufen der ganzen Applikation ein login benötigt.
* @param redirectUri: URL, zu der nach dem Login weitergeleitet wird. Hierbei wird die Port des Frontends aus der .env-Datei verwendet.
*/
const keycloak = new Keycloak({
url: 'http://localhost:8083/',
realm: 'PraxistransferKeycloak',
clientId: 'praxistransfer'
});
console.log("ICH WAR HIER");
try {
const authenticated = await keycloak.init({
onLoad: 'login-required',
redirectUri: 'http://localhost:8080/'
}).then( (auth) => {
console.log("Authenticated :" + authenticated);
});
} catch (error) {
console.error(error);
}
console.log(keycloak);
console.log(keycloak.subject);
// Anfrage ans Backend
const userStore = useUserStore();
if (keycloak.subject != null) {
//userStore.loadPtpUsersByKeycloakID(keycloak.subject);
userStore.getPtpUserByKeycloakID(keycloak.subject);
/*console.log(userStore.userLoaded);
if(userStore.userLoaded) {
console.log("Hier ist der Bruder: " + JSON.stringify(userStore.user));
}*/
userStore.loadPtpUsersByKeycloakID(keycloak.subject).then(user => {
console.log(JSON.stringify(user));
})
} else {
console.log("hier ist was schlimmes passiert menno");
}