vue 中token验证

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue 中token验证相关的知识,希望对你有一定的参考价值。

参考技术A 首先 将拿到的token,存储到locallstorage,,,

在main.js文件中   通过设置请求拦截器,,判断是否拿到了token,如果拿到了,则每个http header都加上token,,方便后端进行  效验合法,如果没有 则进行错误抛出,进行提示消息。

在main.js文件中   通过设置响应拦截器,通过返回分析reponse结果,进行判断,一般返回结果中,这个code为10010 token过期,code为10011

token无效,则就行router.replace(path: '/login', //跳转到到登录页重新获取token ),判断token是否存在,如果存在说明需要更新token,覆盖原来的token,,,或者    错误抛出,进行提示消息。

vue登录注册及token验证

在大多数网站中,实现登录注册都是结合本地存储cookie、localStorage和请求时验证token等技术。而对于某些功能页面,会尝试获取本地存储中的token进行判断,存在则可进入,否则跳到登录页或弹出登录框。

而在vue单页中,我们可以通过监控route对象,从中匹配信息去决定是否验证token,然后定义后续行为


// router.js import Vue from ‘vue‘ import VueRouter from ‘vue-router‘ Vue.use(VueRouter) const routes = [ { path: ‘/‘, component: require(‘./views/Home‘), meta: { requiresAuth: true } }, ] const router = new VueRouter({ routes: routes }) router.beforeEach((to, from, next) => { let token = window.localStorage.getItem(‘token‘) if (to.matched.some(record => record.meta.requiresAuth) && (!token || token === null)) { next({ path: ‘/login‘, query: { redirect: to.fullPath } }) } else { next() } }) export default router

  2. watch route对象。原理同上

<script>
    // App.vue
    export default {
        watch:{
            ‘$route‘:function(to,from){
                let token = window.localStorage.getItem(‘token‘);
           if (to.matched.some(record => record.meta.requiresAuth) && (!token || token === null)) {
             next({
               path: ‘/login‘,
               query: { redirect: to.fullPath }
             })
           } else {
                next()
           }
         }
      }
    }
</script>

  

以上是关于vue 中token验证的主要内容,如果未能解决你的问题,请参考以下文章

vue登录注册及token验证

Vue项目中实现用户登录及token验证

Vue项目中实现用户登录及token验证

vue cli中token验证

Vue项目中用户登录及token验证及流程图

Vue项目中实现用户登录及token验证