一、概述

我们的网页需要用户登录后才可以进行显示,不然将其拦截到登录页面。

登录成功后,前端的 header 加上 token 值。如果 token 值为空,说明未登录。

二、设置路由守卫

  1. import {createRouter, createWebHistory} from 'vue-router'
  2. import routes from './routes' // 导入 router 目录下的 router.js 配置路径和组件的
  3. import { ElMessage } from "element-plus";
  4. const router = createRouter({
  5. history: createWebHistory(process.env.BASE_URL),
  6. routes
  7. })
  8. /**
  9. * 全局前置路由守卫
  10. */
  11. router.beforeEach((to, from, next) => {
  12. if (to.path == '/user/login' || to.path == '/user/register') {
  13. // 登录或者注册才可以往下进行
  14. next();
  15. } else {
  16. // 获取 token
  17. const token = localStorage.getItem('Authorization');
  18. // token 不存在
  19. if (token === null || token === '') {
  20. ElMessage.error('您还没有登录,请先登录');
  21. next('/user/login');
  22. } else {
  23. next();
  24. }
  25. }
  26. });
  27. export default router;