// 在 Vue 项目中,我们通常会在路由守卫中进行 token 的检查。以下是具体的实现代码:
// main.js 或 router.js 中
import Vue from 'vue';
import Router from 'vue-router';
import store from './store'; // 假设你使用 Vuex 来管理状态
import Login from './views/Login.vue';
Vue.use(Router);
const router = new Router({
routes: [
{
path: '/',
name: 'home',
component: () => import('./views/Home.vue'),
meta: { requiresAuth: true } // 标记需要登录的页面
},
{
path: '/login',
name: 'login',
component: Login
},
// 其他路由配置...
]
});
router.beforeEach((to, from, next) => {
const requiresAuth = to.matched.some(record => record.meta.requiresAuth);
const token = store.getters['auth/token']; // 从 Vuex 中获取 token
if (requiresAuth && !token) {
// 如果目标页面需要认证且没有 token,则重定向到登录页
next({
path: '/login',
query: { redirect: to.fullPath } // 将当前访问路径作为参数传递给登录页
});
} else {
next(); // 否则继续导航
}
});
export default router;
router.beforeEach 是一个全局前置守卫,在每次路由切换前都会触发。to.matched.some(record => record.meta.requiresAuth) 检查目标路由是否需要认证。上一篇:vue富文本组件
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站