add production url

This commit is contained in:
Sergej Kern 2026-01-21 22:46:13 +01:00
parent a1e9ac285a
commit a2fb11a59b
3 changed files with 28 additions and 4 deletions

View File

@ -1,8 +1,18 @@
import axios from 'axios' import axios from 'axios'
import { getToken } from './keycloak' import { getToken } from './keycloak'
// Determine API base URL based on environment
const getApiBaseUrl = (): string => {
// In production, API is proxied through the same domain at /api
if (import.meta.env.PROD) {
return window.location.origin + '/api'
}
// In development, use localhost backend
return 'http://localhost:5050/api'
}
const api = axios.create({ const api = axios.create({
baseURL: 'http://localhost:5050/api' baseURL: getApiBaseUrl()
}) })
api.interceptors.request.use( api.interceptors.request.use(

View File

@ -2,10 +2,21 @@ import Keycloak from 'keycloak-js'
let keycloak: Keycloak | null = null let keycloak: Keycloak | null = null
// Get base URL from environment or use current origin
const getRedirectUri = (): string => {
// In production, use the current domain
if (import.meta.env.PROD) {
return window.location.origin + '/'
}
// In development, use localhost
return 'http://localhost:3030/'
}
export const initKeycloak = async (): Promise<Keycloak> => { export const initKeycloak = async (): Promise<Keycloak> => {
console.log('Initializing Keycloak...') console.log('Initializing Keycloak...')
const clientId = 'dalex-proto' const clientId = 'dalex-proto'
const redirectUri = getRedirectUri()
keycloak = new Keycloak({ keycloak = new Keycloak({
url: 'https://terminus.bluelake.cloud', // Remove trailing slash url: 'https://terminus.bluelake.cloud', // Remove trailing slash
@ -16,7 +27,8 @@ export const initKeycloak = async (): Promise<Keycloak> => {
console.log('Keycloak config:', { console.log('Keycloak config:', {
url: 'https://terminus.bluelake.cloud', url: 'https://terminus.bluelake.cloud',
realm: 'dalex-immo-dev', realm: 'dalex-immo-dev',
clientId: clientId clientId: clientId,
redirectUri: redirectUri
}) })
try { try {
@ -24,7 +36,7 @@ export const initKeycloak = async (): Promise<Keycloak> => {
onLoad: 'login-required', onLoad: 'login-required',
checkLoginIframe: false, checkLoginIframe: false,
pkceMethod: 'S256', // Using PKCE for public clients pkceMethod: 'S256', // Using PKCE for public clients
redirectUri: 'http://localhost:3030/', // Explicit redirect URI redirectUri: redirectUri, // Use dynamic redirect URI
flow: 'standard' // Explicitly use standard (Authorization Code) flow flow: 'standard' // Explicitly use standard (Authorization Code) flow
}) })
@ -65,6 +77,6 @@ export const getToken = (): string | undefined => {
export const logout = (): void => { export const logout = (): void => {
keycloak?.logout({ keycloak?.logout({
redirectUri: 'http://localhost:3030/' redirectUri: getRedirectUri()
}) })
} }

View File

@ -1,4 +1,6 @@
/* eslint-disable */ /* eslint-disable */
/// <reference types="vite/client" />
declare module '*.vue' { declare module '*.vue' {
import type { DefineComponent } from 'vue' import type { DefineComponent } from 'vue'
const component: DefineComponent<{}, {}, any> const component: DefineComponent<{}, {}, any>