如何使用vue项目在laravel中添加权限控制?

问题描述 投票:0回答:2

我正在将vue js添加到我当前的laravel应用程序中,因此我可以将其设为SPA,这意味着laravel仅用作后端,其余部分由vue js控制,从渲染视图到路由。

我目前的laravel应用程序使用kodeine laravel-acl来控制哪个页面以及我的用户可以通过简单的操作

把它放在路上:

Route::get('admin', [
        'as'           => 'admins.admin.index',           
        'uses'         => 'UserController@index',
        'middleware'   => ['auth', 'acl'],
        'can'          => 'view.admin_view']);

如果我只是这样做,以隐藏一些行动,如果用户没有权限

@permission('view.admin_view')
   //some link or button          
@endpermission

并且所有这些权限都存储在mysql数据库中,每个用户都有不同的权限集。

但如果我把它变成vue js SPA怎么办呢?既然所有路线都是通过vue js控制的?

laravel vue.js vuejs2
2个回答
0
投票

您可以在通过routeConfig中的beforeEnter()前往某条路线之前执行检查。样品在这里:

const router = new VueRouter({
  routes: [
    {
      path: '/foo',
      component: Foo,
      beforeEnter: (to, from, next) => {
        // ... Do your checkings here
      }
    }
  ]
})

0
投票

要简单地使用权限检测逻辑,您可以使用CASL - https://github.com/stalniy/casl

文档中的文档和文章中有很多有趣的东西,解释了如何与Vue和其他流行框架集成!

© www.soinside.com 2019 - 2024. All rights reserved.