oidc-vue-test/src/main.ts

39 lines
1,023 B
TypeScript
Raw Normal View History

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')