Open hanxiaosss opened 4 years ago
没这么做过 但是拦截到了 就可以存 cookies.set()试试?
具体 可以看一下 utils下的auth.js 里有存储token的办法
我这边在统一认证平台重定向过来后会带上token的参数,我的实现方式如下: 在permission.js文件的const hasToken = getToken()前面添加以下代码 // determine whether the user has logged in const token = getQueryParam('token') if (token) { setToken(token) location.href = process.env.VUE_APP_BASE_URL }
在@/utils/auth添加方法: export function getQueryParam(name) { var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)') var r = window.location.search.substr(1).match(reg) if (r) { return decodeURIComponent(r[2]) } return null }
由于后续接口请求头都要带上token,我是在permission路由拦截里面取到了token,怎么修改vueX中存的token? 谢谢 `` router.beforeEach(async(to, from, next) => { console.log(to, 'TO') console.log(to.path, 'TOPATH') console.log(from, 'form') // start progress bar NProgress.start()
// set page title document.title = getPageTitle(to.meta.title) // if(to.query.code){ // store.getter // } // determine whether the user has logged in const hasToken = getToken() || to.query.code console.log(hasToken, 'hastoken') if (hasToken) { if (to.path === '/login') { // if is logged in, redirect to the home page next({ path: '/' }) NProgress.done() } else { const hasGetUserInfo = store.getters.name if (hasGetUserInfo) { next() } else { try { // get user info await store.dispatch('user/getInfo') const accessRoutes = await store.dispatch('permission/getRolesMenu') router.addRoutes(accessRoutes) next({ ...to, replace: true }) } catch (error) { // remove token and go to login page to re-login await store.dispatch('user/resetToken') Message.error(error.message || 'Has Error') next(
/login?redirect=${to.path}&&code=${hasToken}
) NProgress.done() } } } }``