{"_path":"/frontend/react/axios-refresh-token-on-react","_dir":"react","_draft":false,"_partial":false,"_locale":"en","_empty":false,"title":"Axios Refresh Token On React","description":"<ApiProvider /> component, that will handle token refresh if needed. Refresh function should, probably, be passed through component props.","excerpt":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"code-inline","props":{},"children":[{"type":"text","value":"<ApiProvider />"}]},{"type":"text","value":" component, that will handle token refresh if needed. Refresh function should, probably, be passed through component props."}]},{"type":"element","tag":"code","props":{"code":"import axios from \"axios\";\nimport React, {\n  createContext,\n  FC,\n  PropsWithChildren,\n  useCallback,\n  useContext,\n  useEffect,\n  useRef,\n} from \"react\";\n\ninterface APIProviderProps extends PropsWithChildren {\n  tokens: {\n    access: string;\n    refresh: string;\n  };\n  logout: () => void;\n}\n\nconst APIContext = createContext({\n  client: axios.create({\n    baseURL: process.env.NEXT_PUBLIC_API_ENDPOINT,\n  }),\n});\n\nconst APIProvider: FC<APIProviderProps> = ({ \n    tokens, \n    logout, \n    children,\n}) => {\n  const client = useRef(\n    axios.create({\n      baseURL: process.env.NEXT_PUBLIC_API_ENDPOINT,\n    })\n  ).current;\n\n  const refreshTokens = useCallback<() => string>(() => {\n    // TODO: implement me\n    throw new Error(\"not implemented\");\n  }, []);\n\n  useEffect(() => {\n    if (!tokens.access) {\n      return;\n    }\n\n    // append `access` token to all requests\n    const req = client.interceptors.request.use(\n      async (config) => {\n        config.headers = {\n          Authorization: `Bearer ${tokens.access}`,\n        };\n        return config;\n      },\n      (error) => {\n        Promise.reject(error);\n      }\n    );\n\n    // refreshing interceptor\n    const resp = client.interceptors.response.use(\n      (response) => {\n        return response;\n      },\n      async function (error) {\n        const originalRequest = error.config;\n\n        if (error.response.status === 401 && !originalRequest._retry) {\n          originalRequest._retry = true;\n\n          const newToken = refreshTokens;\n\n          return axios({\n            ...originalRequest,\n            headers: {\n              ...originalRequest.headers,\n              Authorization: \"Bearer \" + newToken,\n            },\n          });\n        }\n\n        logout();\n        return Promise.reject(error);\n      }\n    );\n\n    return () => {\n      axios.interceptors.request.eject(req);\n      axios.interceptors.request.eject(resp);\n    };\n  }, [client, tokens.access, tokens.refresh, refreshTokens, logout]);\n\n  return (\n    <APIContext.Provider value={{ client }}>\n        {children}\n    </APIContext.Provider>\n  );\n};\n\nexport const useAPI = () => useContext(APIContext).client;\n\nexport { APIProvider };\n","language":"typescript"},"children":[{"type":"element","tag":"pre","props":{},"children":[{"type":"element","tag":"code","props":{"__ignoreMap":""},"children":[{"type":"text","value":"import axios from \"axios\";\nimport React, {\n  createContext,\n  FC,\n  PropsWithChildren,\n  useCallback,\n  useContext,\n  useEffect,\n  useRef,\n} from \"react\";\n\ninterface APIProviderProps extends PropsWithChildren {\n  tokens: {\n    access: string;\n    refresh: string;\n  };\n  logout: () => void;\n}\n\nconst APIContext = createContext({\n  client: axios.create({\n    baseURL: process.env.NEXT_PUBLIC_API_ENDPOINT,\n  }),\n});\n\nconst APIProvider: FC<APIProviderProps> = ({ \n    tokens, \n    logout, \n    children,\n}) => {\n  const client = useRef(\n    axios.create({\n      baseURL: process.env.NEXT_PUBLIC_API_ENDPOINT,\n    })\n  ).current;\n\n  const refreshTokens = useCallback<() => string>(() => {\n    // TODO: implement me\n    throw new Error(\"not implemented\");\n  }, []);\n\n  useEffect(() => {\n    if (!tokens.access) {\n      return;\n    }\n\n    // append `access` token to all requests\n    const req = client.interceptors.request.use(\n      async (config) => {\n        config.headers = {\n          Authorization: `Bearer ${tokens.access}`,\n        };\n        return config;\n      },\n      (error) => {\n        Promise.reject(error);\n      }\n    );\n\n    // refreshing interceptor\n    const resp = client.interceptors.response.use(\n      (response) => {\n        return response;\n      },\n      async function (error) {\n        const originalRequest = error.config;\n\n        if (error.response.status === 401 && !originalRequest._retry) {\n          originalRequest._retry = true;\n\n          const newToken = refreshTokens;\n\n          return axios({\n            ...originalRequest,\n            headers: {\n              ...originalRequest.headers,\n              Authorization: \"Bearer \" + newToken,\n            },\n          });\n        }\n\n        logout();\n        return Promise.reject(error);\n      }\n    );\n\n    return () => {\n      axios.interceptors.request.eject(req);\n      axios.interceptors.request.eject(resp);\n    };\n  }, [client, tokens.access, tokens.refresh, refreshTokens, logout]);\n\n  return (\n    <APIContext.Provider value={{ client }}>\n        {children}\n    </APIContext.Provider>\n  );\n};\n\nexport const useAPI = () => useContext(APIContext).client;\n\nexport { APIProvider };\n"}]}]}]}]},"body":{"type":"root","children":[{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"code-inline","props":{},"children":[{"type":"text","value":"<ApiProvider />"}]},{"type":"text","value":" component, that will handle token refresh if needed. Refresh function should, probably, be passed through component props."}]},{"type":"element","tag":"code","props":{"code":"import axios from \"axios\";\nimport React, {\n  createContext,\n  FC,\n  PropsWithChildren,\n  useCallback,\n  useContext,\n  useEffect,\n  useRef,\n} from \"react\";\n\ninterface APIProviderProps extends PropsWithChildren {\n  tokens: {\n    access: string;\n    refresh: string;\n  };\n  logout: () => void;\n}\n\nconst APIContext = createContext({\n  client: axios.create({\n    baseURL: process.env.NEXT_PUBLIC_API_ENDPOINT,\n  }),\n});\n\nconst APIProvider: FC<APIProviderProps> = ({ \n    tokens, \n    logout, \n    children,\n}) => {\n  const client = useRef(\n    axios.create({\n      baseURL: process.env.NEXT_PUBLIC_API_ENDPOINT,\n    })\n  ).current;\n\n  const refreshTokens = useCallback<() => string>(() => {\n    // TODO: implement me\n    throw new Error(\"not implemented\");\n  }, []);\n\n  useEffect(() => {\n    if (!tokens.access) {\n      return;\n    }\n\n    // append `access` token to all requests\n    const req = client.interceptors.request.use(\n      async (config) => {\n        config.headers = {\n          Authorization: `Bearer ${tokens.access}`,\n        };\n        return config;\n      },\n      (error) => {\n        Promise.reject(error);\n      }\n    );\n\n    // refreshing interceptor\n    const resp = client.interceptors.response.use(\n      (response) => {\n        return response;\n      },\n      async function (error) {\n        const originalRequest = error.config;\n\n        if (error.response.status === 401 && !originalRequest._retry) {\n          originalRequest._retry = true;\n\n          const newToken = refreshTokens;\n\n          return axios({\n            ...originalRequest,\n            headers: {\n              ...originalRequest.headers,\n              Authorization: \"Bearer \" + newToken,\n            },\n          });\n        }\n\n        logout();\n        return Promise.reject(error);\n      }\n    );\n\n    return () => {\n      axios.interceptors.request.eject(req);\n      axios.interceptors.request.eject(resp);\n    };\n  }, [client, tokens.access, tokens.refresh, refreshTokens, logout]);\n\n  return (\n    <APIContext.Provider value={{ client }}>\n        {children}\n    </APIContext.Provider>\n  );\n};\n\nexport const useAPI = () => useContext(APIContext).client;\n\nexport { APIProvider };\n","language":"typescript"},"children":[{"type":"element","tag":"pre","props":{},"children":[{"type":"element","tag":"code","props":{"__ignoreMap":""},"children":[{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"import"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"axios"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"from"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-7d3dc1"},"children":[{"type":"text","value":"\"axios\""}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":";"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"import"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"React"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":", {"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"  "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"createContext"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":","}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"  "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"FC"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":","}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"  "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"PropsWithChildren"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":","}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"  "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"useCallback"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":","}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"  "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"useContext"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":","}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"  "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"useEffect"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":","}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"  "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"useRef"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":","}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"} "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"from"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-7d3dc1"},"children":[{"type":"text","value":"\"react\""}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":";"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-a934ae"},"children":[{"type":"text","value":"interface"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-a1b6c7"},"children":[{"type":"text","value":"APIProviderProps"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-a934ae"},"children":[{"type":"text","value":"extends"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-555540"},"children":[{"type":"text","value":"PropsWithChildren"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":" {"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":"  "}]},{"type":"element","tag":"span","props":{"class":"ct-b20458"},"children":[{"type":"text","value":"tokens"}]},{"type":"element","tag":"span","props":{"class":"ct-c13ca6"},"children":[{"type":"text","value":":"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":" {"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":"    "}]},{"type":"element","tag":"span","props":{"class":"ct-b20458"},"children":[{"type":"text","value":"access"}]},{"type":"element","tag":"span","props":{"class":"ct-c13ca6"},"children":[{"type":"text","value":":"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-638ba0"},"children":[{"type":"text","value":"string"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":";"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":"    "}]},{"type":"element","tag":"span","props":{"class":"ct-b20458"},"children":[{"type":"text","value":"refresh"}]},{"type":"element","tag":"span","props":{"class":"ct-c13ca6"},"children":[{"type":"text","value":":"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-638ba0"},"children":[{"type":"text","value":"string"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":";"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"  };"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"  "}]},{"type":"element","tag":"span","props":{"class":"ct-a24982"},"children":[{"type":"text","value":"logout"}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":":"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" () "}]},{"type":"element","tag":"span","props":{"class":"ct-81ec3a"},"children":[{"type":"text","value":"=>"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-f0c41f"},"children":[{"type":"text","value":"void"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":";"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-81ec3a"},"children":[{"type":"text","value":"const"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-c64333"},"children":[{"type":"text","value":"APIContext"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"="}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-a24982"},"children":[{"type":"text","value":"createContext"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"({"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"  client: "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"axios"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-a24982"},"children":[{"type":"text","value":"create"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"({"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    baseURL: "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"process"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"env"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-c64333"},"children":[{"type":"text","value":"NEXT_PUBLIC_API_ENDPOINT"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":","}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"  }),"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"});"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-81ec3a"},"children":[{"type":"text","value":"const"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-a24982"},"children":[{"type":"text","value":"APIProvider"}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":":"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-847ca7"},"children":[{"type":"text","value":"FC"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"<"}]},{"type":"element","tag":"span","props":{"class":"ct-847ca7"},"children":[{"type":"text","value":"APIProviderProps"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"> "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"="}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" ({ "}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"tokens"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":", "}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"logout"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":", "}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"children"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":","}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"}) "}]},{"type":"element","tag":"span","props":{"class":"ct-81ec3a"},"children":[{"type":"text","value":"=>"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" {"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"  "}]},{"type":"element","tag":"span","props":{"class":"ct-81ec3a"},"children":[{"type":"text","value":"const"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-c64333"},"children":[{"type":"text","value":"client"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"="}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-a24982"},"children":[{"type":"text","value":"useRef"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"("}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"axios"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-a24982"},"children":[{"type":"text","value":"create"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"({"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"      baseURL: "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"process"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"env"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-c64333"},"children":[{"type":"text","value":"NEXT_PUBLIC_API_ENDPOINT"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":","}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    })"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"  )."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"current"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":";"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"  "}]},{"type":"element","tag":"span","props":{"class":"ct-81ec3a"},"children":[{"type":"text","value":"const"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-c64333"},"children":[{"type":"text","value":"refreshTokens"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"="}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-a24982"},"children":[{"type":"text","value":"useCallback"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"<() "}]},{"type":"element","tag":"span","props":{"class":"ct-81ec3a"},"children":[{"type":"text","value":"=>"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-f0c41f"},"children":[{"type":"text","value":"string"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":">(() "}]},{"type":"element","tag":"span","props":{"class":"ct-81ec3a"},"children":[{"type":"text","value":"=>"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" {"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    "}]},{"type":"element","tag":"span","props":{"class":"ct-0dc4d2"},"children":[{"type":"text","value":"// TODO: implement me"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"throw"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"new"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-f0c41f"},"children":[{"type":"text","value":"Error"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"("}]},{"type":"element","tag":"span","props":{"class":"ct-7d3dc1"},"children":[{"type":"text","value":"\"not implemented\""}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":");"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"  }, []);"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"  "}]},{"type":"element","tag":"span","props":{"class":"ct-a24982"},"children":[{"type":"text","value":"useEffect"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"(() "}]},{"type":"element","tag":"span","props":{"class":"ct-81ec3a"},"children":[{"type":"text","value":"=>"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" {"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"if"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" ("}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"!"}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"tokens"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"access"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":") {"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"      "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"return"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":";"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    }"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    "}]},{"type":"element","tag":"span","props":{"class":"ct-0dc4d2"},"children":[{"type":"text","value":"// append `access` token to all requests"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    "}]},{"type":"element","tag":"span","props":{"class":"ct-81ec3a"},"children":[{"type":"text","value":"const"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-c64333"},"children":[{"type":"text","value":"req"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"="}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"client"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"interceptors"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"request"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-a24982"},"children":[{"type":"text","value":"use"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"("}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":"      "}]},{"type":"element","tag":"span","props":{"class":"ct-a934ae"},"children":[{"type":"text","value":"async"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":" ("}]},{"type":"element","tag":"span","props":{"class":"ct-b20458"},"children":[{"type":"text","value":"config"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":") "}]},{"type":"element","tag":"span","props":{"class":"ct-a934ae"},"children":[{"type":"text","value":"=>"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":" {"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"        "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"config"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"headers"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"="}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" {"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"          Authorization: "}]},{"type":"element","tag":"span","props":{"class":"ct-7d3dc1"},"children":[{"type":"text","value":"`Bearer ${"}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"tokens"}]},{"type":"element","tag":"span","props":{"class":"ct-2507d5"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"access"}]},{"type":"element","tag":"span","props":{"class":"ct-7d3dc1"},"children":[{"type":"text","value":"}`"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":","}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"        };"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"        "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"return"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"config"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":";"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"      },"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":"      ("}]},{"type":"element","tag":"span","props":{"class":"ct-b20458"},"children":[{"type":"text","value":"error"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":") "}]},{"type":"element","tag":"span","props":{"class":"ct-a934ae"},"children":[{"type":"text","value":"=>"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":" {"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"        "}]},{"type":"element","tag":"span","props":{"class":"ct-f0c41f"},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-a24982"},"children":[{"type":"text","value":"reject"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"("}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"error"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":");"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"      }"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    );"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    "}]},{"type":"element","tag":"span","props":{"class":"ct-0dc4d2"},"children":[{"type":"text","value":"// refreshing interceptor"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    "}]},{"type":"element","tag":"span","props":{"class":"ct-81ec3a"},"children":[{"type":"text","value":"const"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-c64333"},"children":[{"type":"text","value":"resp"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"="}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"client"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"interceptors"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"response"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-a24982"},"children":[{"type":"text","value":"use"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"("}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":"      ("}]},{"type":"element","tag":"span","props":{"class":"ct-b20458"},"children":[{"type":"text","value":"response"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":") "}]},{"type":"element","tag":"span","props":{"class":"ct-a934ae"},"children":[{"type":"text","value":"=>"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":" {"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"        "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"return"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"response"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":";"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"      },"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":"      "}]},{"type":"element","tag":"span","props":{"class":"ct-a934ae"},"children":[{"type":"text","value":"async"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-a934ae"},"children":[{"type":"text","value":"function"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":" ("}]},{"type":"element","tag":"span","props":{"class":"ct-b20458"},"children":[{"type":"text","value":"error"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":") {"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"        "}]},{"type":"element","tag":"span","props":{"class":"ct-81ec3a"},"children":[{"type":"text","value":"const"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-c64333"},"children":[{"type":"text","value":"originalRequest"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"="}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"error"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"config"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":";"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"        "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"if"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" ("}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"error"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"response"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"status"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"==="}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-895201"},"children":[{"type":"text","value":"401"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"&&"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"!"}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"originalRequest"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"_retry"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":") {"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"          "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"originalRequest"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"_retry"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"="}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-a0b570"},"children":[{"type":"text","value":"true"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":";"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"          "}]},{"type":"element","tag":"span","props":{"class":"ct-81ec3a"},"children":[{"type":"text","value":"const"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-c64333"},"children":[{"type":"text","value":"newToken"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"="}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"refreshTokens"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":";"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"          "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"return"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-a24982"},"children":[{"type":"text","value":"axios"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"({"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"            "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"..."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"originalRequest"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":","}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"            headers: {"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"              "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"..."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"originalRequest"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"headers"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":","}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"              Authorization: "}]},{"type":"element","tag":"span","props":{"class":"ct-7d3dc1"},"children":[{"type":"text","value":"\"Bearer \""}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"+"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"newToken"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":","}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"            },"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"          });"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"        }"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"        "}]},{"type":"element","tag":"span","props":{"class":"ct-a24982"},"children":[{"type":"text","value":"logout"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"();"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"        "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"return"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-f0c41f"},"children":[{"type":"text","value":"Promise"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-a24982"},"children":[{"type":"text","value":"reject"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"("}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"error"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":");"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"      }"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    );"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"return"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" () "}]},{"type":"element","tag":"span","props":{"class":"ct-81ec3a"},"children":[{"type":"text","value":"=>"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" {"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"      "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"axios"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"interceptors"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"request"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-a24982"},"children":[{"type":"text","value":"eject"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"("}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"req"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":");"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"      "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"axios"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"interceptors"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"request"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-a24982"},"children":[{"type":"text","value":"eject"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"("}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"resp"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":");"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    };"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"  }, ["}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"client"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":", "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"tokens"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"access"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":", "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"tokens"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"refresh"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":", "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"refreshTokens"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":", "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"logout"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"]);"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"  "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"return"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" ("}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"<"}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"APIContext"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"Provider"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"value"}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"="}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"{{ "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"client"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" }}"}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":">"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":"        {"}]},{"type":"element","tag":"span","props":{"class":"ct-b20458"},"children":[{"type":"text","value":"children"}]},{"type":"element","tag":"span","props":{"class":"ct-bb4b0c"},"children":[{"type":"text","value":"}"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"    "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"</"}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"APIContext"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"Provider"}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":">"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"  );"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"};"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"export"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-81ec3a"},"children":[{"type":"text","value":"const"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-a24982"},"children":[{"type":"text","value":"useAPI"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"="}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" () "}]},{"type":"element","tag":"span","props":{"class":"ct-81ec3a"},"children":[{"type":"text","value":"=>"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" "}]},{"type":"element","tag":"span","props":{"class":"ct-a24982"},"children":[{"type":"text","value":"useContext"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":"("}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"APIContext"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":")."}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"client"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":";"}]}]},{"type":"element","tag":"span","props":{"class":"line"},"children":[]},{"type":"element","tag":"span","props":{"class":"line"},"children":[{"type":"element","tag":"span","props":{"class":"ct-df6cf3"},"children":[{"type":"text","value":"export"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" { "}]},{"type":"element","tag":"span","props":{"class":"ct-b44a8c"},"children":[{"type":"text","value":"APIProvider"}]},{"type":"element","tag":"span","props":{"class":"ct-584613"},"children":[{"type":"text","value":" };"}]}]}]}]}]},{"type":"element","tag":"style","children":[{"type":"text","value":".ct-a0b570{color:#79C0FF}.ct-895201{color:#79C0FF}.ct-2507d5{color:#A5D6FF}.ct-0dc4d2{color:#8B949E}.ct-847ca7{color:#FFA657}.ct-c64333{color:#79C0FF}.ct-f0c41f{color:#79C0FF}.ct-81ec3a{color:#FF7B72}.ct-a24982{color:#D2A8FF}.ct-638ba0{color:#79C0FF}.ct-c13ca6{color:#FF7B72}.ct-b20458{color:#FFA657}.ct-555540{color:#79C0FF}.ct-a1b6c7{color:#FFA657}.ct-bb4b0c{color:#C9D1D9}.ct-a934ae{color:#FF7B72}.ct-7d3dc1{color:#A5D6FF}.ct-b44a8c{color:#C9D1D9}.ct-584613{color:#C9D1D9}.ct-df6cf3{color:#FF7B72}.light .ct-df6cf3{color:#859900}.light .ct-584613{color:#657B83}.light .ct-b44a8c{color:#268BD2}.light .ct-7d3dc1{color:#2AA198}.light .ct-a934ae{color:#073642}.light .ct-bb4b0c{color:#657B83}.light .ct-a1b6c7{color:#268BD2}.light .ct-555540{color:#657B83}.light .ct-b20458{color:#657B83}.light .ct-c13ca6{color:#859900}.light .ct-638ba0{color:#859900}.light .ct-a24982{color:#268BD2}.light .ct-81ec3a{color:#073642}.light .ct-f0c41f{color:#859900}.light .ct-c64333{color:#268BD2}.light .ct-847ca7{color:#268BD2}.light .ct-0dc4d2{color:#93A1A1}.light .ct-2507d5{color:#657B83}.light .ct-895201{color:#D33682}.light .ct-a0b570{color:#B58900}"}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[]}},"_type":"markdown","_id":"content:Frontend:React:Axios refresh token on React.md","_source":"content","_file":"Frontend/React/Axios refresh token on React.md","_extension":"md"}