Как проверять jwt в Nuxt, в режиме "spa"?
Коллеги, проблема следующая:
Приложение работает в режиме "SPA"
Соответственно серверные функции, такие как "nuxtServerInit" и другие, наработают естественным образом.
При первой загрузке страницы или обновлении уже загружённой не срабатывает Middleware, по той причине, что Middleware срабатывает один раз на сервере и последующие переходы...
Но так как мы работаем в режиме SPA мы лишены возможности первого срабатывания Middleware при загрузке.
Но мне нужно защитить роутинг при первой загрузке.
Вот как я это делаю:
middleware/check-auth.jsexport default async function ({store, req, redirect}) {
if (process.browser){
let auth = isAuth(store.getters['access_token'])
if(!auth){
redirect('/login')
}
}
};
Я нашёл выход!
Создав плагин
plugins/nuxt-client-init.jsexport default (ctx) => {
let auth = isAuth(Cookie.get("access_token"))
if(!auth){
ctx.redirect('/login')
} else {
ctx.redirect('/')
}
}
Но, оказалось, что
ctx.redirect('/login') не работает да и магазин ещё не инициализирован ((
Вот как я подключаю плагины, интересно, а имеет значение порядок загрузки?
/*
** Plugins to load before mounting the App
*/
plugins: [
{ src: '~/plugins/localStorage.js', ssr: false },
{ src: '~/plugins/nuxt-client-init.js', ssr: false }
],