vue 登录 router

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();
这部分

脑袋疼

阅读 1.8k
2 个回答

遇到过类似的情况,我猜测应该是你使用的token是第一次的时候读取到的,那时可能还没有登录;后面每次使用的都是第一次读取的空的token,那个sessionStroage.getItem("Admintoken")可能只执行了一次,以后每次都在内存中读取了。
但如果你刷新一下页面会发现,是有token的。

如果是这种情况,建议使用一个全局变量来存token;登录后把token存到sessionStorage里,不然刷新后就没了;同时存到全局变量中。
读取的时候,先读全局变量,如果没有再读 sessionStorage的。

你打开DevTools看一下Session Storage里有没有AdminToken,是什么。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题