console.log(error, "ERRRORR");
çıktısını alabiliyor musunuz? Eğer request sonucunda hata alıyorsanız ve konsolda bu çıktıyı göremiyorsanız, muhtemelen axios interceptors çalışmamıştır. React tarafında ben şu şekilde kullanıyorum;
Önce bir axios instance oluşturuyorum.
import Axios from 'axios';
const axiosInstance = axios.create({
baseURL: 'api-base-url',
headers: { 'Content-Type': 'application/json' }
});
Daha sonra interceptor response ile hatayı yakalıyor ve oturumu sonlandırıyorum.
axiosInstance.interceptors.response.use(
(response) => response,
(error) => {
if (error.response && error.response.status === 401) {
// Oturumu kapatma ve login sayfasına yönlendirme işlemlerini burada yapıyorum.
}
Promise.reject(error);
}
);
Daha sonra oluşturduğum instance export ederek, kullanmak istediğim yerlerde axios paketi yerine oluşturduğum instance kullanıyorum.
export default axiosInstance;
import axiosInstance from './helpers/axios';
axiosInstance.post('/users', {
// data
});
Böyleye response eğer 401 hata kodu içeriyorsa kullanıcı oturumunu sonlandırabiliyorum.
Kodları çalışan bir projeden almadığım için eksik veya hatalı olabilir, sadece react tarafında nasıl bir mantıkla yaptığımı göstermek istedim. Belki nuxt ve vue taraflarında da buna benzer bir şekilde yapılıyordur.