h5本地存储实现登录认证 sessionStorage localStorage meta

1 篇文章 0 订阅

h5本地存储

  • sessionStorage

    sessionStorage仅在当前会话下有效,关闭页面或浏览器后被清除。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存

  • localStorage

    localStorage生命周期是永久,这意味着除非用户显示在浏览器提供的UI上清除localStorage信息,否则这些信息将永远存在。存放数据大小为一般为5MB,而且它仅在客户端(即浏览器)中保存

  • localStorage和sessionStorage使用时使用相同的API:

      localStorage.setItem("key","value");//以“key”为名称存储一个值“value”
      localStorage.getItem("key");//获取名称为“key”的值
      localStorage.removeItem("key");//删除名称为“key”的信息。
      localStorage.clear();//清空localStorage中所有信息
    

vue中路由meta实现登录认证

meta字段(元数据)
直接在路由配置的时候,给每个路由添加一个自定义的meta对象,在meta对象中可以设置一些状态,来进行一些操作。用它来做登录校验再合适不过了

{
      path: '/main',
      name: 'main',
      meta: {requestAuth: true},
      component: Main,
      children: [{
          path: '/user/list',
          name: 'user_list',
          meta: {requestAuth: false},
          component: () => import('./views/user/List.vue')
        },
        {
          path: '/user/add',
          name: 'user_add',
          meta: {
            requestAuth: true
          },
          component: () => import('./views/user/Add.vue')
        },
        {
          path: '/user/update',
          name: 'user_update',
          meta: {
            requestAuth: true
          },
          component: () => import('./views/user/Update.vue')
        }
      ]
    }
/**
 * 全局前置守卫
 * 统一登录认证
 */
```javascript
router.beforeEach((to,from,next) => {
  console.log(`to => ${to.path}`); // 即将要进入的目标 路由对象
  console.log(`from => ${from.path}`); //from 当前导航正要离开的路由
//   第一种登录认证方法localStorage
//   if (to.path === '/login') {
//     next()
//   }else{
//     // alert('你还未登录,请登录');
//     if(!localStorage.getItem('user')) {
//       next({ path: '/login' })
//     }else{
//       next()
//     }
//   }
// })


//第二种登录认证方法meta
  const isAuth = to.matched.some(item =>item.meta.requestAuth);
  console.log(`isAuth = ${isAuth} type = ${typeof(isAuth)}`);
  if(!isAuth){
    next();
    return
  }
  const user = localStorage.getItem('user');
  if(!user){
    next({ path: '/login' });
    return;
  }
  next();

})
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值