2025-01-25 02:23:43 +01:00
|
|
|
import { createApp } from 'vue'
|
|
|
|
import Keycloak from "keycloak-js"
|
|
|
|
import VueKeycloakJs, { useKeycloak } from '@dsb-norge/vue-keycloak-js'
|
|
|
|
import axios from 'axios'
|
|
|
|
import App from './App.vue'
|
2025-01-28 19:50:17 +01:00
|
|
|
import { settings as app_settings } from "../settings"
|
2025-01-25 02:23:43 +01:00
|
|
|
|
|
|
|
export const HTTP = axios.create({
|
|
|
|
baseURL: '/',
|
2025-01-28 19:50:17 +01:00
|
|
|
timeout: 10000
|
2025-01-25 02:23:43 +01:00
|
|
|
})
|
|
|
|
|
|
|
|
function initializeTokenInterceptor() {
|
2025-01-28 19:50:17 +01:00
|
|
|
HTTP.interceptors.request.use(settings => {
|
2025-01-25 02:23:43 +01:00
|
|
|
const keycloak = useKeycloak()
|
|
|
|
if (keycloak.authenticated) {
|
2025-01-28 19:50:17 +01:00
|
|
|
settings.headers.Authorization = `Bearer ${keycloak.token}`
|
|
|
|
settings.headers.auth_provider = app_settings.auth_provider
|
2025-01-25 02:23:43 +01:00
|
|
|
}
|
2025-01-28 19:50:17 +01:00
|
|
|
return settings
|
2025-01-25 02:23:43 +01:00
|
|
|
}, error => {
|
|
|
|
return Promise.reject(error)
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
createApp(App)
|
|
|
|
.use(VueKeycloakJs, {
|
|
|
|
config: {
|
|
|
|
url: 'https://philo.ydns.eu/auth/',
|
|
|
|
realm: 'test',
|
|
|
|
clientId: 'oidc-test-web',
|
|
|
|
},
|
2025-01-28 19:50:17 +01:00
|
|
|
init: { onLoad: app_settings.sso ? 'check-sso' : 'login-required' },
|
2025-01-26 03:52:08 +01:00
|
|
|
onReady(keycloak: Keycloak, vkk) {
|
2025-01-25 02:23:43 +01:00
|
|
|
initializeTokenInterceptor()
|
|
|
|
},
|
|
|
|
})
|
|
|
|
.mount('#app')
|