diff --git a/src/services/http/client.ts b/src/services/http/client.ts index 9dd382ca..f9389a16 100644 --- a/src/services/http/client.ts +++ b/src/services/http/client.ts @@ -1,10 +1,22 @@ import axios from 'axios'; -import type { AxiosRequestConfig } from 'axios'; +import type { AxiosError, AxiosRequestConfig } from 'axios'; import { RequestOptions } from '@/services/http/base'; const BASE_URL = process.env.NEXT_PUBLIC_API_BASE_URL ?? ''; const axiosClient = axios.create({ baseURL: BASE_URL, timeout: 10_000 }); +axiosClient.interceptors.response.use( + (response) => response, + (error: AxiosError) => { + if (error.response?.status === 401) { + const ssoLoginUrl = `${process.env.NEXT_PUBLIC_SSO_LOGIN_URL as string}?redirect_url=${window.location.href}`; + window.location.href = ssoLoginUrl; + } + + return Promise.reject(error); + } +); + export async function httpClient( path: string, opts: RequestOptions = {}