-
Mohammad Torkashvand authoredMohammad Torkashvand authored
useAxiosInterceptor.tsx 769 B
import axios from 'axios';
import { signOut } from 'next-auth/react';
import { useEffect } from 'react';
const useAxiosInterceptor = () => {
useEffect(() => {
const responseInterceptor = axios.interceptors.response.use(
(response) => response,
(error) => {
if (error.response && error.response.status === 401) {
const currentUrl = window.location.href;
signOut({
callbackUrl: `/api/auth/signin?error=SessionRequired&callbackUrl=${encodeURIComponent(
currentUrl,
)}`,
});
}
return Promise.reject(error);
},
);
return () => {
axios.interceptors.response.eject(responseInterceptor);
};
}, []);
};
export default useAxiosInterceptor;