From 093cdb97e7570a4dbb8ca3b277677d638d07065c Mon Sep 17 00:00:00 2001 From: NlightN22 Date: Tue, 27 Feb 2024 23:02:22 +0700 Subject: [PATCH] fix auth redirect add token to requests --- src/index.tsx | 11 +---------- src/services/frigate.proxy/frigate.api.ts | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index 2e49846..e02dd08 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -16,13 +16,6 @@ export const keycloakConfig: AuthProviderProps = { authority: oidpSettings.server, client_id: oidpSettings.clientId, redirect_uri: hostURL.toString(), - onSigninCallback: () => { - window.history.replaceState( - {}, - document.title, - window.location.pathname - ) - } } const rootStore = new RootStore() @@ -41,6 +34,4 @@ root.render( // If you want to start measuring performance in your app, pass a function // to log results (for example: reportWebVitals(console.log)) // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals -reportWebVitals(); - - +reportWebVitals(); \ No newline at end of file diff --git a/src/services/frigate.proxy/frigate.api.ts b/src/services/frigate.proxy/frigate.api.ts index 616be0e..6c01d64 100644 --- a/src/services/frigate.proxy/frigate.api.ts +++ b/src/services/frigate.proxy/frigate.api.ts @@ -10,12 +10,31 @@ import { FrigateConfig } from "../../types/frigateConfig"; import { url } from "inspector"; import { RecordSummary } from "../../types/record"; import { EventFrigate } from "../../types/event"; +import { keycloakConfig } from "../.."; +const getToken = (): string | undefined => { + const key = `oidc.user:${keycloakConfig.authority}:${keycloakConfig.client_id}`; + const stored = sessionStorage.getItem(key); + const storedObject = stored ? JSON.parse(stored) : null; + return storedObject?.access_token; +} + const instanceApi = axios.create({ baseURL: proxyURL.toString(), timeout: 30000, -}); +}) + +instanceApi.interceptors.request.use( + config => { + const token = getToken(); + if (token) { + config.headers.Authorization = `Bearer ${token}`; + } + return config; + }, + error => Promise.reject(error) + ); export const frigateApi = { getConfig: () => instanceApi.get('apiv1/config').then(res => res.data),