diff --git a/package.json b/package.json index 0bd3683..69cafbf 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "type-check": "vue-tsc --build" }, "dependencies": { - "@dsb-norge/vue-keycloak-js": "3.0.1", + "@dsb-norge/vue-keycloak-js": "^3.0.1", "axios": "1.7.9", "keycloak-js": "^26.1.0", "vue": "3.5.13" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3a3a2ea..356bbae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ importers: .: dependencies: '@dsb-norge/vue-keycloak-js': - specifier: 3.0.1 + specifier: ^3.0.1 version: 3.0.1(vue@3.5.13(typescript@5.6.3)) axios: specifier: 1.7.9 diff --git a/src/App.vue b/src/App.vue index dadb57e..35bdd1b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,7 +1,8 @@ diff --git a/src/main.ts b/src/main.ts index b9f1baa..a023199 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,38 +1,54 @@ import { createApp } from 'vue' import Keycloak from "keycloak-js" -import VueKeycloakJs, { useKeycloak } from '@dsb-norge/vue-keycloak-js' +import VueKeycloakJs from '@dsb-norge/vue-keycloak-js' import axios from 'axios' import App from './App.vue' -import { settings as app_settings } from "../settings" +import { settings } from "../settings" -export const HTTP = axios.create({ +export const authServer = axios.create({ baseURL: '/', timeout: 10000 }) -function initializeTokenInterceptor() { - HTTP.interceptors.request.use(settings => { - const keycloak = useKeycloak() +export const resourceServer = axios.create({ + baseURL: settings.url, + timeout: 10000 +}) + +function initializeTokenInterceptor(keycloak: Keycloak) { + authServer.interceptors.request.use(axiosSettings => { if (keycloak.authenticated) { - settings.headers.Authorization = `Bearer ${keycloak.token}` - settings.headers.auth_provider = app_settings.auth_provider + axiosSettings.headers.Authorization = `Bearer ${keycloak.token}` + axiosSettings.headers.auth_provider = settings.auth_provider } - return settings + 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) }) } -createApp(App) - .use(VueKeycloakJs, { - config: { - url: 'https://philo.ydns.eu/auth/', - realm: 'test', - clientId: 'oidc-test-web', - }, - init: { onLoad: app_settings.sso ? 'check-sso' : 'login-required' }, - onReady(keycloak: Keycloak, vkk) { - initializeTokenInterceptor() - }, - }) - .mount('#app') +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) + }, +})