当前在 permission.js 路由拦截中是通过浏览器 localStorage 获取 token 值,但现在使用的Vuex状态管理,那我
们希望通过 store 来获取 token 状态值.

  1. 在 src\permission.js 中将获取 token 方式替换为从 store 状态中获取, 如下:
    注意要import导入store
。。。
import store from './store'
router.beforeEach((to, from , next) => { 
// 1. 获取token 
// const token = localStorage.getItem('mxg-msm-token')
const token = store.state.user.token 
。。。
  1. 重新访问登录 http://localhost:8888/#/login ,登录后一样可以进入首页
  2. 刷新首页,发现会回到登录页面。因为刷新 后token状态值还原初始值 null, 所以又会要求 重新登录
  3. 解决刷新页面重新登录的问题,在 src\store\modules\user.js 中 token 初始值为 getToken()
import {getToken, setToken, setUser, getUser, removeToken} from '@/utils/auth' 
import { login, getUserInfo, logout} from '@/api/login'
const user = { 
	state: { 
		token: getToken(), 
		// getToken() 作为token初始值,解决刷新页面之后token为null 
		user: null 
	}, 
。。。 。。。

转载自梦学谷

Logo

前往低代码交流专区

更多推荐