我有一个使用
当用户登录时,我会获取其权限并将其保存在
例如,我有以下这些路由:
vue
和后端框架laravel
的项目,需要检查用户是否具有访问资源或视图权限。在后端中,我使用Laravel Permissions来实现这一点,并且其运作良好,现在问题出现在前端。当用户登录时,我会获取其权限并将其保存在
localStorage
中,那么如果用户没有某个路由的权限,如何防止其进入该路由呢?例如,我有以下这些路由:
{
path: 'users',
name: 'Users',
component: Users,
meta : {
permissions: 'read_users'
}
},
{
path: 'roles-permissions',
name: 'RolesPermissions',
component: RolesPermissions,
meta : {
permissions: 'read_roles'
}
},
{
path: 'roles-permissions/create',
name: 'CreateRolesPermissions',
component: CreateRolesPermissions,
meta : {
permissions: 'create_roles'
}
},
{
path: 'roles-permissions/:id/edit',
name: 'EditRolesPermissions',
component: EditRolesPermissions,
meta : {
permissions: 'edit_roles'
}
},
{
path: 'customers',
name: 'Clientes',
component: CustomersList
}
如果用户没有在['read_roles','create_roles','edit_roles','read_users']
中的任何一个权限,则应将其重定向到customers
页面。
var permissions = localStorage.getItem('permissions'); var can = to.meta.permissions ? (permissions.includes(to.meta.permissions) || to.meta.permissions == '*') : true;
如何实现这个功能?
router.beforeEach
中获取它呢? - Carlos Salazar