From 59527b03e7a81b4acced1fbfdeec638a773f68f8 Mon Sep 17 00:00:00 2001 From: Tatyana Date: Fri, 15 Aug 2025 12:13:01 +0300 Subject: [PATCH] =?UTF-8?q?=D1=83=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20axios+=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=B5=D0=BD=20confconnect?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/icon_main.svg | 10 +++++++++ src/confconnect.js | 37 +++++++++++++++++++++++++++++++ src/shared/consts/localStorage.ts | 2 ++ src/shared/consts/router.ts | 20 +++++++++++++++++ 4 files changed, 69 insertions(+) create mode 100644 public/icon_main.svg create mode 100644 src/confconnect.js create mode 100644 src/shared/consts/localStorage.ts create mode 100644 src/shared/consts/router.ts diff --git a/public/icon_main.svg b/public/icon_main.svg new file mode 100644 index 0000000..d243fc9 --- /dev/null +++ b/public/icon_main.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/confconnect.js b/src/confconnect.js new file mode 100644 index 0000000..b134f63 --- /dev/null +++ b/src/confconnect.js @@ -0,0 +1,37 @@ +import axios from 'axios'; + +import { AUTH_TOKEN, USER_KEY } from '@/shared/consts/localStorage'; +import { getRouteLogin } from '@/shared/consts/router'; + +const instance = axios.create({ + baseURL: 'http://localhost:8093/', + headers: { + 'Content-type': 'application/json', + }, +}); + +instance.interceptors.response.use(undefined, async (error) => { + if (error.response?.status === 401) { + localStorage.removeItem(AUTH_TOKEN); + localStorage.removeItem(USER_KEY); + + window.location.href = getRouteLogin(); + } + + return Promise.reject(error); +}); + +instance.interceptors.request.use( + (config) => { + const token = localStorage.getItem(AUTH_TOKEN); + const c = config; + + if (token && config) { + c.headers.Authorization = `Bearer ${token}`; + } + return config; + }, + (error) => Promise.reject(error), +); + +export { instance as connect }; diff --git a/src/shared/consts/localStorage.ts b/src/shared/consts/localStorage.ts new file mode 100644 index 0000000..b2535b9 --- /dev/null +++ b/src/shared/consts/localStorage.ts @@ -0,0 +1,2 @@ +export const USER_KEY = 'user'; +export const AUTH_TOKEN = 'token'; diff --git a/src/shared/consts/router.ts b/src/shared/consts/router.ts new file mode 100644 index 0000000..3fc953f --- /dev/null +++ b/src/shared/consts/router.ts @@ -0,0 +1,20 @@ +export const getRouteLogin = () => `/auth/login`; +export const getRouteRegister = () => `/auth/register`; +export const getRouteResetPassword = () => `/auth/reset-password`; +export const getRouteLkHome = () => `/lk`; + +export const getRouteUsersList = () => `/lk/admin/users`; +export const getRouteUserEdit = (id: number | string) => `/lk/admin/users/${id}`; +export const getRouteUserCreate = () => `/lk/admin/users/create`; + +export const getRouteUserRolesList = () => `/lk/admin/user-roles`; +export const getRouteUserRoleEdit = (id: number | string) => `/lk/admin/user-roles/${id}`; +export const getRouteUserRoleCreate = () => `/lk/admin/user-roles/create`; + +export const getRouterExercisesList = () =>`/lk/admin/exercises`; +export const getRouterExercisesEdit = (id: number | string) =>`/lk/admin/exercises/${id}`; +export const getRouterExercisesCreate = () =>`/lk/admin/exercises/create`; + +export const getRouterCoursesList = () => `/lk/admin/courses`; +export const getRouterCoursesEdit = (id: number | string) => `/lk/admin/courses/${id}`; +export const getRouterCoursesCreate = () => `/lk/admin/courses/create`;