Vue-router 怎么解决用户登录问题的?

目前的我的想法是如果浏览器里有token .那么直接跳转到用户页,如果没有则跳到登录页.

伪代码

    if(token){
        router.push('/user')
    }else{
        router.push('login')
    }
    这段代码我放到main.js里面..  结果我发现在有token的情况下,都会触发这段代码.也就是说无论我在哪个页面刷新页面,都会跳转到 user页面.
    
    这是为什么呢 ? 点刷新之后,vue不应该是执行 app.vue里的代码么? (比较诡异的是,我这段代码本身是放到 app.vue里的,由于发生了上述问题,我才放到main.js里的.然后我昨天发现问题解决了.而且测试了好多遍然后我就push了,结果今天发现又出现这个问题了.这是个什么情况呢 ?)
    我只是想知道为什么会发生这种诡异的事情.

回答:

用路由元信息的解决方案应该会更漂亮一点。

https://router.vuejs.org/zh-c…

文档↑。

回答:

你这样写当然呀

 if(token){
        router.push('/user')  //这不是跳了吗?
    }else{
        router.push('login')
    }

一般用户登录之后把token存在本地sessionStorage中,
然后ajax请求把这个token放在请求头中,如过token过期或者错误,约定字段,让后台返回一个假如status=-1的时候是token异常,然后这个时候去跳转登录页login
一般这种做法都是要包装一下ajax,
在route的全局钩子函数中,每个路由之间的跳转,都去判断一下sessionStorage中是否存有token,没有的话,跳转login

暂无评论

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注