From e8394937a0c62da526fa84d31c10c605d856fd7d Mon Sep 17 00:00:00 2001 From: CBA Nick Date: Fri, 25 Dec 2020 09:08:50 +0700 Subject: [PATCH] fix vue router middleware error when directly access to url using admin.js or role.js middleware without login. user was undefined --- resources/js/middleware/admin.js | 7 +++++++ resources/js/middleware/role.js | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/resources/js/middleware/admin.js b/resources/js/middleware/admin.js index 276ef3de5..0e8c5ad1b 100644 --- a/resources/js/middleware/admin.js +++ b/resources/js/middleware/admin.js @@ -1,6 +1,13 @@ import store from '~/store' +import Cookies from 'js-cookie' export default (to, from, next) => { + if (!store.getters['auth/check']) { + Cookies.set('intended_url', to.path) + + next({ name: 'login' }) + return + } if (store.getters['auth/user'].role !== 'admin') { next({ name: 'home' }) } else { diff --git a/resources/js/middleware/role.js b/resources/js/middleware/role.js index c63a6cedb..0bbc65945 100644 --- a/resources/js/middleware/role.js +++ b/resources/js/middleware/role.js @@ -1,4 +1,5 @@ import store from '~/store' +import Cookies from 'js-cookie' /** * This is middleware to check the current user role. @@ -7,6 +8,12 @@ import store from '~/store' */ export default (to, from, next, roles) => { + if (!store.getters['auth/check']) { + Cookies.set('intended_url', to.path) + + next({ name: 'login' }) + return + } // Grab the user const user = store.getters['auth/user']