Adicione index.js no roteador
metade: {
requireauth: true, // determina se o login é necessário
},
Ele é usado para julgar se deve fazer login e não há necessidade de adicioná-lo no login
import Vue from "vue";
import VueRouter from "vue-router";
import Router from "vue-router";
const routes = [
{
path: "/about",
name: "About",
component: () =>
import(/* webpackChunkName: "about" */ "../views/About.vue"),
children: [
{
path: "/home",
name: "home",
meta: {
requireauth: true, // 判断是否需要登录
},
component: () =>
import(/* webpackChunkName: "home" */ "../views/home/Home.vue"),
},
}
]
Em main.js:
router.beforeEach((to, from, next) => {
if (to.matched.some((record) => record.meta.requireauth)) {
// 判断该路由是否需要登录权限
// console.log("需要登录");
if (document.cookie.split("token=")[1]) {
// 判断当前的token是否存在 ; 登录存入的token
next();
} else {
next({
path: "/",
query: { redirect: to.fullpath }, // 将跳转的路由path作为参数,登录成功后跳转到该路由
});
}
} else {
next();
}
});
Aqui eu uso o token para julgar se o token existe no cookie e, se não existir, ele pulará para a página de login