added logout function and persistent pinia store
This commit is contained in:
54
src/main.ts
54
src/main.ts
@@ -4,69 +4,31 @@ 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());
|
||||
const pinia = createPinia();
|
||||
app.use(pinia);
|
||||
|
||||
|
||||
/**
|
||||
* 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);
|
||||
const keycloak: Keycloak = await userStore.initKeycloak();
|
||||
|
||||
// Anfrage ans Backend
|
||||
|
||||
if (keycloak.subject != null) {
|
||||
if (keycloak.subject) {
|
||||
userStore.keycloakId = keycloak.subject;
|
||||
//userStore.loadPtpUsersByKeycloakID(keycloak.subject);
|
||||
userStore.getPtpUserByKeycloakID(keycloak.subject);
|
||||
await 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 => {
|
||||
userStore.loadPtpUsersByKeycloakID(keycloak.subject).then(user => {
|
||||
console.log(JSON.stringify(user));
|
||||
})
|
||||
} else {
|
||||
console.error("hier ist was schlimmes passiert menno");
|
||||
}
|
||||
|
||||
keycloakStore.setKeycloak(keycloak);
|
||||
|
||||
Reference in New Issue
Block a user