問題
nuxt.jsでfireabaseを使用してログインしていないユーザーはloginページにリダイレクトさせたいのですが
現状ではリダイレクトはしているのですが一瞬ログイン後のindexページが表示されたあとに
loginページにとばされます。
//router.js export default async(context) => { context.app.router.beforeEach((to, from, next) => { if (context.route.meta[0].requiresAuth) { auth.onAuthStateChanged( (user) => { if (!user&& to.name != 'login' && to.name != 'signup'){ console.log('1'); next({ path: '/login' }); return } }) } console.log('2'); next() }) }
試したこと
コンソールで挙動をかくにんしたところ
console.log('2') → indexページが表示 → console.log('1') → console.log('2')
となってしまっています。
おそらくauth.onAuthStateChangedがuserを取得中に飛ばされているためかとおもうのですが
awaitをつけてauth.onAuthStateChangedの実行がおわるまで待ちたいのでが
エラーとなってしまします。
promis構文がまだ不慣れのためご教授いただけないでしょうか?
最後に1に飛んだあとにも2がじっこうされているのですが
console.log('1') → console.log('2')
next({ path: '/login' })が実行されても止まらないのはなぜなのでしょうか・・?
あなたの回答
tips
プレビュー