router.beforeEach((to, from, next) => {
if (to.meta.requireAuth) {
//获取用户登录成功后储存的登录标志
let AdminToken = sessionStorage.getItem("AdminToken");
alert(AdminToken);
if (AdminToken === null) {
alert("不存在");
next({
path: '/LoginAdmin',
})
} else {
alert("存在");
next();
}
} else {
next()
}
});
alert(AdminToken);弹出的 是null
为什么 总是执行的是
alert("存在");
next();
这部分
脑袋疼
遇到过类似的情况,我猜测应该是你使用的token是第一次的时候读取到的,那时可能还没有登录;后面每次使用的都是第一次读取的空的token,那个sessionStroage.getItem("Admintoken")可能只执行了一次,以后每次都在内存中读取了。
但如果你刷新一下页面会发现,是有token的。
如果是这种情况,建议使用一个全局变量来存token;登录后把token存到sessionStorage里,不然刷新后就没了;同时存到全局变量中。
读取的时候,先读全局变量,如果没有再读 sessionStorage的。