Files
ptpchat-frontend/src/main.ts
2024-05-01 20:48:20 +02:00

73 lines
2.7 KiB
TypeScript

import {createApp} from 'vue';
import {createPinia} from 'pinia';
import App from './App.vue';
import Keycloak 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.
*/
/**
* Variablen sind in quasar.config.js definiert und werden hier verwendet.
* @param keycloakPort Port, auf dem Keycloak läuft, hinterlegt in docker-compose.yml
* @param frontendPort Port, auf dem das Frontend läuft, hinterlegt in quasar.config.js und realm-export.json von Keycloak für die Redirect-URL
* @param realm Name des Realms, hinterlegt in realm-export.json von Keycloak
* @param clientId Name des Clients, hinterlegt in realm-export.json von Keycloak
*/
const keycloakPort = "" + process.env.PORT_KEYCLOAK;
const frontendPort = "" + process.env.PORT_FRONTEND;
const realm = "" + process.env.KEYCLOAK_REALM;
const clientId = "" + process.env.KEYCLOAK_CLIENT_ID;
const userStore = useUserStore();
const keycloakStore = useKeycloakStore();
const keycloak = new Keycloak({
url: 'http://localhost:' + keycloakPort + '/',
realm: realm,
clientId: clientId
});
try {
await keycloak.init({
onLoad: 'login-required', //authentifizierung erforderlich
redirectUri: 'http://localhost:' + frontendPort + '/test/'
}).then( (auth) => {
console.log("Authenticated: " + auth);
});
} catch (error) {
console.error(error);
}
console.log(keycloak);
console.log(keycloak.subject);
// Anfrage ans Backend
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.error("hier ist was schlimmes passiert menno");
}
keycloakStore.setKeycloak(keycloak);