73 lines
2.7 KiB
TypeScript
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);
|