169 похожих чатов

То как мы его в store то запихнём?

25 ответов

65 просмотров

Через мутацию?

const app = createApp(App); app.use(store) await store.loadSomeState(); app.mount('#app')

Vlad 🍍 Starkovsky️️
const app = createApp(App); app.use(store) await...

Да только там надо ещё роутер чуть попозже создать

Prototype- Автор вопроса
Stanislav Lashmanov
Да только там надо ещё роутер чуть попозже создать

А вот я здесь призадумался с одним вопросом. Что будет, если при первичном получении /profile с backend выпадет 401, тогда перехватчик попытается сделать с помощью router redirect на страницу /login: Но ведь router ещё не инициализирован, так как запрос делается ДО app.use(router). Это первый вопрос. const api = axios.create({ withCredentials: true, timeout: 5000, headers: { "Content-Type": "application/json" }, }); api.interceptors.response.use( function (response) { return response; }, function (error) { console.log(error.response.data); if (error.response.status === 401) { // store.dispatch('logout') router.push("/login").then(console.error); return Promise.resolve(error.response); } else { return Promise.reject(error); } } ); Второй вопрос у меня возник из первого, сейчас если я не авторизован меня даже на условный home сайта (/) не пускает, так как сразу пытается выполниться запрос на получение профиля, но там падает 401 и меня редиректит на страницу логина. Я считаю что это так работать не должно, правильно ли я догадываюсь что использовать одновременно перехватчик на 401 и в beforeEnter проверку meta.requiresAuth не нужно?

Prototype
А вот я здесь призадумался с одним вопросом. Что б...

Вы связали интерцепторы аксиоса с вью роутером? Это прямой выстрел себе в ногу.

Prototype- Автор вопроса
Stanislav Lashmanov
Вы связали интерцепторы аксиоса с вью роутером? Эт...

Собственно в этом и был вопрос, я сам учуял что это вместе будет странно работать и решил уточнить. получается от interceptors и redirect на login стоит отказаться и возложить всю ответственность за права на вот эту штуку: router.beforeEach((to) => { console.log("beforeEach", to.fullPath); if (to.meta.disableIfAuthorized && store.getters["user/isAuthorized"]) { console.log("disableIfAuthorized"); return { path: "/", }; } // instead of having to check every route record with // to.matched.some(record => record.meta.requiresAuth) if (to.meta.requiresAuth && !store.getters["user/isAuthorized"]) { // this route requires auth, check if logged in // if not, redirect to login page. return { path: "/login", // save the location we were at to come back later query: { redirect: to.fullPath }, }; } });

Stanislav Lashmanov
Вы связали интерцепторы аксиоса с вью роутером? Эт...

А в глобал стор в actions ставить router.push хорошaя практика?

Prototype
Собственно в этом и был вопрос, я сам учуял что эт...

Я бы не использовал для этого meta. Гарды можно для каждого роута указывать свои. const authenticatedOnly = () => ({ next }) => { if (store.getters["user/isAuthorized"]) { next() } else { next('/login') } } { name: 'restricted', path: '/secret', beforeEnter: authenticatedOnly(), }

Prototype- Автор вопроса

Так, я наконец-то сел пробовать вот этот вариант. const app = createApp(App); app.use(store); await store.fetchUser(); app.use(router); app.mount("#app"); store index: import { createStore } from "vuex"; import { userModule } from "@/store/userModule"; export default createStore({ modules: { user: userModule, }, strict: process.env.NODE_ENV !== "production", }); Как здесь обратиться к userModule и вызывать у него метод, который загрузит профиль пользователя?

для начала перестать называть его модулем)

Dmitry Glazkov
Как тут в телеге также код оформлять?

js (твой код) и закрывающиеся кавычки ```js function foo() {}

Prototype- Автор вопроса
Stanislav Lashmanov
Я бы не использовал для этого meta. Гарды можно дл...

Привет! А как сюда добавить чтобы был обратно redirect на путь из которого попали ? Аналог return { path: '/login', // save the location we were at to come back later query: { redirect: to.fullPath } }

Prototype
Привет! А как сюда добавить чтобы был обратно redi...

Можно получить это в beforeEnter и сохранить где-нибудь или явно указать в квери параметре

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта