Для vue защиты маршрутов
Для защиты vue маршрутов вы можете использовать навигационные средства защиты, которые являются специфической c функцией в Vue Маршрутизаторе, который предоставляет дополнительные функции, относящиеся к тому, как разрешаются маршруты.
Вы должны использовать пакет vue -router для использования маршрутов в vuejs app
В src/router/index.js
вы можете добавить защиту маршрута следующим образом
import Vue from "vue";
import Router from "vue-router";
import Main from "@/components/Main";
import Products from "@/components/Products";
import Create from "@/components/Create";
import Show from "@/components/Show";
import Unauthorised from "@/components/Unauthorised";
//use vue router
Vue.use(Router);
//init Router and define some routes
export default new Router({
routes: [
{
path: '/',
name: 'Main',
component: Main
},
{
path: '/products',
name: 'Products',
component: Products
},
{
path: '/create',
name: 'Create',
component: Create
},
{
path: '/show',
name: 'Show',
component: Show
},
{
path: '/unauthorised',
name: 'Unauthorised',
component: Unauthorised
}
]
})
//apply route guard
router.beforeEach((to, from, next) => {
//list of blocked routes
const protectedRoutes = ['/products', '/create'];
//the route user is trying to access is in blocked routes list
if (protectedRoutes.includes(to.path)) {
//redirect to route having unauhorised message page
return next('/unauthorised');
}
)
else
{
// otherwise allow user to access route
return next();
}
В этом примере есть пять маршрутов, например /
, /products
, /create
, /show
и последний /unauthorised
для отображения ошибки. Здесь, если какой-либо пользователь попытается получить доступ к маршрутам, перечисленным в $protectedRoutes
, он будет перенаправлен на /unauthorised
маршрут, в противном случае ему будет разрешен доступ к другим маршрутам
, вы можете узнать больше о vue Router Guard здесь и около vue-router
здесь . Кроме того, вы можете защищать свои маршруты на основе ролей пользователей или любых других условий. Я рекомендую использовать vuex
для управления состоянием пользователя и управлять доступом к маршрутам на основе роли, сохраненной в состоянии пользователя