1:刷新让他保持登录2:然后登录过后就不让他在登录了 3:关闭浏览器再打开也不用再重新登录了,
。
解决方案:
在storageUtils里面引入store 定义一个key叫做user_key 值为b0344_user_key
(然后这个b0344_user_key 定义一个常量)然后用set get remove的时候都用这一个key要改就改b0344_user_key就好了
这样我在登录成功的话我需要保存一下
在memoryUtils存一下,再在storageUtils存一下
然后再程序入口main.js里面看看storageUtils里面存不存在,如果存在就往memoryUtils.user里面存一下,用于判断用户是否登陆过,防止关闭浏览器重新打开memoryUtils初始化变为空
点击登录点击两次才会进到登陆页面。
因为我触发actions方法时候,,在点击一次就直接去判断这个条件了,这时候user里面什么信息也没有呢, dispath执行了异步操作去了,第二次点击dispatch才执行完异步操作,所以把这个判断放到actions里面操作才可以。把组件的保存操作注释掉。
并且在dipach方法里面要传进去路由对象,要不然actions里面拿不到路由对象,解构赋值也要解构出来
接下来进行权限校验,看你是否登陆过,没有登陆过让你登录,登陆过让你去登录页。、
本来是在main.js里面写但是抽取出来了,所以在main.js里要引入一下 import "./permiassion"
利用路由守卫-router.beforEach
有两个参数router.beforEach(to去哪,from从哪来的,next下一步要怎么做)=>
用:在src目录下创建permission.js,在这里校验。
在路由跳转之前,先获取user对象是否存在,并且不是空对象