diff --git a/src/permission.js b/src/permission.js index e41df7c..669bb65 100644 --- a/src/permission.js +++ b/src/permission.js @@ -59,9 +59,21 @@ console.log('is In WhiteList') next() } else { - console.log('noTokentoToLogin') - // next(`/login?redirect=${to.path}`) // 否则全部重定向到登录页 - next('/login') // 否则全部重定向到登录页 + // 获取链接里的token + const token = to.query.token + console.log('token' + to.query.token) + if (token) { + // 调用自动登录接口,否则跳转到登录页 + store.dispatch('AppLogin', token).then(() => { + console.log('自动登录成功') + console.log(to.path) + next({ ...to, replace: true }) // 登录成功继续 + }).catch(() => { + next('/401') // 否则全部重定向到401没有权限页面 + }) + } else { + next(`/login?redirect=${to.path}`) // 否则全部重定向到登录页 + } NProgress.done() } } diff --git a/src/permission.js b/src/permission.js index e41df7c..669bb65 100644 --- a/src/permission.js +++ b/src/permission.js @@ -59,9 +59,21 @@ console.log('is In WhiteList') next() } else { - console.log('noTokentoToLogin') - // next(`/login?redirect=${to.path}`) // 否则全部重定向到登录页 - next('/login') // 否则全部重定向到登录页 + // 获取链接里的token + const token = to.query.token + console.log('token' + to.query.token) + if (token) { + // 调用自动登录接口,否则跳转到登录页 + store.dispatch('AppLogin', token).then(() => { + console.log('自动登录成功') + console.log(to.path) + next({ ...to, replace: true }) // 登录成功继续 + }).catch(() => { + next('/401') // 否则全部重定向到401没有权限页面 + }) + } else { + next(`/login?redirect=${to.path}`) // 否则全部重定向到登录页 + } NProgress.done() } } diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 28149ed..c0583db 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -69,7 +69,19 @@ }) }) }, - + // 自动登录接口 + AppLogin({ commit }, token) { + return new Promise((resolve, reject) => { + // 如果token存在直接setToken + if (token) { + setToken(token) + commit('SET_TOKEN', token) + resolve() + } else { + reject() + } + }) + }, // 获取用户信息 GetInfo({ commit, state }) { return new Promise((resolve, reject) => {