diff --git a/lib/api.js b/lib/api.js
index 6e4f5b9..7ff8e23 100644
--- a/lib/api.js
+++ b/lib/api.js
@@ -9,10 +9,10 @@ const axiosInstance = axios.create({
axiosInstance.interceptors.request.use(
async (config) => {
- // if (keycloak?.authenticated) {
- // config.headers.Authorization = `Bearer ${keycloak.token}`;
- // await keycloak.updateToken(30);
- // }
+ if (keycloak?.authenticated) {
+ config.headers.Authorization = `Bearer ${keycloak.token}`;
+ await keycloak.updateToken(30);
+ }
return config;
},
(error) => Promise.reject(error),
@@ -23,22 +23,21 @@ axiosInstance.interceptors.response.use(
async (error) => {
const originalRequest = error.config;
- // if (error?.response?.status === 401 && !originalRequest._retry) {
- // originalRequest._retry = true;
- // keycloak.login();
- // try {
- // await keycloak.updateToken(30);
- // const newToken = keycloak.token;
+ if (error?.response?.status === 401 && !originalRequest._retry) {
+ originalRequest._retry = true;
+ keycloak.login();
+ try {
+ await keycloak.updateToken(30);
+ const newToken = keycloak.token;
- // if (newToken) {
- // originalRequest.headers["Authorization"] = `Bearer ${newToken}`;
- // return axiosInstance(originalRequest);
- // }
- // } catch (refreshError) {
- // localStorage.removeItem("access_account");
- // keycloak.logout({ redirectUri: window.location.origin });
- // }
- // }
+ if (newToken) {
+ originalRequest.headers["Authorization"] = `Bearer ${newToken}`;
+ return axiosInstance(originalRequest);
+ }
+ } catch (refreshError) {
+ keycloak.logout({ redirectUri: window.location.origin });
+ }
+ }
return Promise.reject(error);
},
diff --git a/lib/keycloak.js b/lib/keycloak.js
index a7fa485..8870573 100644
--- a/lib/keycloak.js
+++ b/lib/keycloak.js
@@ -3,7 +3,7 @@ import Keycloak from "keycloak-js";
const keycloak = new Keycloak({
url: "https://auth.ibagher.ir",
realm: "bi",
- clientId: "rasad",
+ clientId: "generative",
});
export const initKeycloak = () =>
diff --git a/pages/_app.js b/pages/_app.js
index cd6662d..4caa406 100644
--- a/pages/_app.js
+++ b/pages/_app.js
@@ -1,32 +1,44 @@
import "@/styles/globals.css";
-import { ChakraProvider } from "@chakra-ui/react";
+import { ChakraProvider, Spinner } from "@chakra-ui/react";
import { QueryParamProvider } from "use-query-params";
import { NextAdapter } from "next-query-params";
import { theme } from "@/components/theme";
-import { useKeycloak } from "@/contexts/KeycloakContext";
+import { KeycloakProvider, useKeycloak } from "@/contexts/KeycloakContext";
import { SWRConfig } from "swr";
import { fetcher } from "@/lib/api";
import { Fonts } from "@/components/base/global";
const Adapter = (props) =>