From 3c0e1b3407aff5af0b40d55522bc2f265c684f63 Mon Sep 17 00:00:00 2001 From: Samandar Turg'unboev Date: Thu, 17 Jul 2025 10:48:09 +0500 Subject: [PATCH] 401 error --- src/context/auth-context.tsx | 5 ++++- src/helpers/authRequest.ts | 7 ++++--- src/helpers/myAxios.ts | 12 +++++++----- src/services/request/request.ts | 4 ++++ 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/context/auth-context.tsx b/src/context/auth-context.tsx index ba0c1dc..8e8b1ed 100644 --- a/src/context/auth-context.tsx +++ b/src/context/auth-context.tsx @@ -55,8 +55,11 @@ export const AuthContextProvider = (props: { children: React.ReactNode }) => { // phone: '99894444444444444', // }, }); - } catch (err) { + } catch (err: any) { console.error(err); + if (err.response.status === 401) { + auth_service.logout(); + } setState({ isAuth: true, isLoading: false, diff --git a/src/helpers/authRequest.ts b/src/helpers/authRequest.ts index 79f5891..1289839 100644 --- a/src/helpers/authRequest.ts +++ b/src/helpers/authRequest.ts @@ -1,7 +1,7 @@ -import axios, { AxiosInstance, AxiosRequestConfig, AxiosError } from 'axios'; -import { getCookie, deleteCookie } from 'cookies-next'; -import { useRouter } from 'next/router'; import { BASE_URI } from '@/helpers/constants'; +import { auth_service } from '@/services/auth'; +import axios, { AxiosError, AxiosInstance } from 'axios'; +import { useRouter } from 'next/router'; const authRequest: AxiosInstance = axios.create({ baseURL: BASE_URI, @@ -27,6 +27,7 @@ authRequest.interceptors.response.use( (error: AxiosError) => { const router = useRouter(); if (error.response && error.response.status === 401) { + auth_service.logout(); localStorage.removeItem('token'); router.push('/login'); } diff --git a/src/helpers/myAxios.ts b/src/helpers/myAxios.ts index 6014740..795aa9f 100644 --- a/src/helpers/myAxios.ts +++ b/src/helpers/myAxios.ts @@ -1,5 +1,6 @@ -import axios, { AxiosInstance, InternalAxiosRequestConfig, AxiosResponse } from 'axios'; import { BASE_URL } from '@/helpers/constants'; +import { auth_service } from '@/services/auth'; +import axios, { AxiosInstance, AxiosResponse, InternalAxiosRequestConfig } from 'axios'; const myAxios: AxiosInstance = axios.create({ baseURL: BASE_URL, @@ -25,10 +26,11 @@ myAxios.interceptors.response.use( return response.data; }, error => { - // if (error.response?.status === 401) { - // localStorage.removeItem('token'); - // window.location.href = '/'; - // } + if (error.response?.status === 401) { + // localStorage.removeItem('token'); + // window.location.href = '/'; + auth_service.logout(); + } return Promise.reject(error); } ); diff --git a/src/services/request/request.ts b/src/services/request/request.ts index d6a7043..8ce6f11 100644 --- a/src/services/request/request.ts +++ b/src/services/request/request.ts @@ -1,6 +1,7 @@ import { BROWSER_TOKEN_KEY, backendURL, isServer } from '@/services/request/constants'; import axios, { AxiosError, AxiosResponse } from 'axios'; import { getCookie } from 'cookies-next'; +import { auth_service } from '../auth'; const request = axios.create({ baseURL: backendURL + '/api/v1', @@ -31,6 +32,9 @@ request.interceptors.response.use( return response; }, async (error: AxiosError) => { + if (error.response?.status === 401) { + auth_service.logout(); + } return Promise.reject(error); } );