当前位置: 首页 > news >正文

全局前置守卫与购物车页面鉴权

在很多应用里,并非所有页面都能随意访问。例如购物车页面,用户需先登录才能查看。这时可以利用全局前置守卫来实现这一鉴权功能。

全局前置守卫的书写位置在 router/index.js 文件中,在创建 router 对象之后,暴露 router 对象之前添加鉴权代码。

javascript

import { createRouter, createWebHistory } from 'vue-router';
import Home from '../views/Home.vue';
import Cart from '../views/Cart.vue';
import Login from '../views/Login.vue';

const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home
  },
  {
    path: '/cart',
    name: 'Cart',
    component: Cart
  },
  {
    path: '/login',
    name: 'Login',
    component: Login
  }
];

const router = createRouter({
  history: createWebHistory(),
  routes
});

// 全局前置守卫
router.beforeEach((to, from, next) => {
  const isLoggedIn = localStorage.getItem('isLoggedIn'); // 假设登录状态存储在 localStorage 中
  if (to.name === 'Cart' && !isLoggedIn) {
    next({ name: 'Login' });
  } else {
    next();
  }
});

export default router;

在上述代码里,router.beforeEach 是全局前置守卫,每次路由切换前都会执行。若要访问购物车页面且用户未登录,就会跳转到登录页面;若已登录或者访问的不是购物车页面,就正常放行。

相关文章:

  • upload-labs二次打
  • 深度学习参数设置指南
  • LRU java 实现方式
  • 计算机组成原理(哈工大,会持续更新)
  • Zookeeper的典型应用场景?
  • MFC案例:利用CFileDialog类选择多个文件的实验
  • Themeleaf复用功能
  • Google A2A协议解析:构建分布式异构多Agent系统
  • 深入了解 UI 咨询公司:数字化时代的品牌助推器
  • 游戏引擎学习第222天
  • 【文献分享】因果推断经验研究中的中介效应与调节效应
  • [题解] Educational Codeforces Round 168 (Rated for Div. 2) E - level up
  • pycharm已有python3.7,如何新增Run Configurations中的Python interpreter为python 3.9
  • 【Linux篇】深入理解文件系统:从基础概念到 ext2 文件系统的应用与解析
  • 深度学习(第一集)
  • 5.1、深度剖析 docker run 命令:原理阐释与数据持久化实践探究
  • vp 2023 icpc 合肥 解题补题记录 [F E J G]
  • 什么是 React Router?如何使用?
  • 7.渐入佳境 -- 优雅的断开套接字连接
  • [Spark]深入解密Spark SQL源码:Catalyst框架如何优雅地解析你的SQL
  • 习近平结束对俄罗斯国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典回到北京
  • 婚姻登记“全国通办”首日观察:数据多跑路,群众少跑腿
  • 花2万多在海底捞办婚礼,连锁餐企要抢酒楼的婚宴生意?
  • “苏河超级管”调研:桥下公园“留白”很好,指引差点
  • 国家出口管制工作协调机制办公室部署开展打击战略矿产走私出口专项行动
  • 国家发改委:美芯片药品等领域关税影响全球科技发展,损害人类共同利益