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

时间:2017-07-27 03:28:13

标签: laravel vue.js vuejs2

我将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控制的?

2 个答案:

答案 0 :(得分:0)

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



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




答案 1 :(得分:0)

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

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