From 8e4d6dde4979de051a3d98daa9768dbfbd7dde54 Mon Sep 17 00:00:00 2001 From: sksabbirhossain Date: Wed, 2 Aug 2023 14:40:12 +0600 Subject: [PATCH] set token in header --- src/features/api/apiSlice.js | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/features/api/apiSlice.js b/src/features/api/apiSlice.js index 82951fd..ff76c4b 100644 --- a/src/features/api/apiSlice.js +++ b/src/features/api/apiSlice.js @@ -1,10 +1,27 @@ import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react"; +import { adminLoggedOut } from "../auth/authSlice"; + +const baseQuery = fetchBaseQuery({ + baseUrl: process.env.REACT_APP_BASE_URL, + prepareHeaders: async (headers, { getState, endpoint }) => { + const token = getState()?.adminAuth?.accessToken; + if (token) { + headers.set("Authorization", `Bearer ${token}`); + } + return headers; + }, +}); export const apiSlice = createApi({ reducerPath: "api", - baseQuery: fetchBaseQuery({ - baseUrl: process.env.REACT_APP_BASE_URL, - }), + baseQuery: async (args, api, extraOptions) => { + let result = await baseQuery(args, api, extraOptions); + if (result?.error?.status === 500) { + api.dispatch(adminLoggedOut()); + localStorage.clear(); + } + return result; + }, tagTypes: [], endpoints: (builder) => ({}), });