import { createApp } from 'vue' import Keycloak from "keycloak-js" import VueKeycloakJs from '@dsb-norge/vue-keycloak-js' import axios from 'axios' import App from './App.vue' import { settings } from "../settings" export const authServer = axios.create({ baseURL: '/', timeout: 10000 }) export const resourceServer = axios.create({ baseURL: settings.url, timeout: 10000 }) function initializeTokenInterceptor(keycloak: Keycloak) { authServer.interceptors.request.use(axiosSettings => { if (keycloak.authenticated) { axiosSettings.headers.Authorization = `Bearer ${keycloak.token}` axiosSettings.headers.auth_provider = settings.auth_provider } return axiosSettings }, error => { return Promise.reject(error) }) resourceServer.interceptors.request.use(axiosSettings => { if (keycloak.authenticated) { axiosSettings.headers.Authorization = `Bearer ${keycloak.token}` axiosSettings.headers.auth_provider = settings.auth_provider } return axiosSettings }, error => { return Promise.reject(error) }) } const app = createApp(App) app.mount('#app') app.use(VueKeycloakJs, { config: { url: 'https://philo.ydns.eu/auth/', realm: 'test', clientId: 'oidc-test-web', }, init: { onLoad: settings.sso ? 'check-sso' : 'login-required', scope: "openid email profile get:time get:bs" }, onReady(keycloak: Keycloak) { initializeTokenInterceptor(keycloak) }, })