axios, и напрашивается в интерсепторе, мол, если код ошибки 401, перенаправь на страницу авторизации — router.push('/login'). Что думаете?
Почему вы проверяете по коду? Может быть логичнее проверять по try catch и/или COOKIE(httpOnly если не задана)/TOKEN (in localStorage) ?
Соглашение с бэкендером.
Как же хорошо, что я фулстэк : ) (Да, я люблю себя 😁)
Ты себя не любишь, ибо выполняешь двойной объём работу почти за тот же прайс, как если бы выбрал одну сторону
какой двойной объём
+, вопрос акутален для меня тоже
В axios добавить возможность создавать свои обработчики разных ситуаций типа 401 ошибки. В App.vue установить обработчик, в котором уже и с роутером работать, и любые сообщения на UI показывать, и стор дёргать или обновлять страницу
что за "свои обработчики", или это про интерсептор ?
Условно const unAuthorizedHandlers = new Set() someAxios.interseptors.response.use((res) => res, (error) => { if (401) { for (const handler of unAuthorizedHandlers) { handler() } } }) const addUnAuthorized = (handler) => unAuthorizedHandlers.add(handler) const removeUnAuthorized = (handler) => unAuthorizedHandlers.delete(handler) И либо экспортировать последние две функции, либо засунуть в сам инстанс axios-а, либо сделать более толстую обёрткую.
А как это будет выглядеть с APp.vue , где мы делаем редирект на страницу, можете накидать пример с компонентом?)
я так понял, просто должна быть функция в App.vue которая работает с роутером, и экспортируется в этот файл с аксиосом?
someAxiosModule.addUnAuthorized(() => { router.redirect() store.logout() authService.logout() toaster.message('You were logout') })
ага, как раз начал догонять, спасибо
это же в хуке script будет, я прав? (ну хук created)
В Composition нет хука created
знаю) , имеется виду в теле script () {} или script setup,
Обсуждают сегодня