私はそのようなコードを持っている場合タイプは動作しません。Vue2ルータを手動で
ページが読み込まれると、トークンがチェックされます。私がトークンを持っていないとき、私はログインページにリダイレクトしています。ログインページの場合はallVideosにリダイレクトするトークンがあるか、他のページの場合はリダイレクトしません。
私はリフレッシュを行ったときにすべてうまくいく、いくつかのボタンなどを通過する。しかし、手動で/#/ loginと入力してVueレンダリングログインページを入力すると、auth_tokenが存在する。私が手動で入力すると、方法は全くcreated
にはなりません。私は再び/#/ loginログインページからログインすると再び作業を開始....任意のアイデア???おかげ
アップデート:まあ、私は今、非常にクリーン私のためのようなコード
router.beforeEach((to, from, next) => {
if(localStorage.hasOwnProperty('auth_token')) {
if(to.name == 'login') {
next({name: 'allVideos'});
}
} else {
if(to.name != 'login') {
next({path: '/login'});
}
}
next();
});
ナビゲーションガードを使用しようとしたんだけど、私はあなたには、手動で
私は概念がインスタンスにVueのそれらのものを置くの右here.Insteadはないと思うが、私はあなたがあなたのケースでは、いくつかのナビゲーションガードして行くべきだと思う 'router.beforeEach'を行う必要がありますトリックhttps://router.vuejs.org/en/advanced/navigation-guards.html –
あなたは 'created'メソッドにそのようなコードを追加するのではなく、' beforeEach'フックを使うべきですか?チェックして、それについてまだ読まないでください。ありがとう! –
はい、この例はhttps://github.com/TahaSh/spa-forum/blob/master/resources/assets/js/main.js#L56 - ここで確認してください(これはVue 1と古いルータコードですが、あなたに役立つかもしれません) beforeEachはライフサイクルフックではなく、ルータインスタンスからのナビゲーションガードです。 –