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

如何使用vue项目在laravel中添加权限控制?,laravel,vue.js,vuejs2,Laravel,Vue.js,Vuejs2,我正在将vue js添加到我当前的laravel应用程序中,以便使其成为SPA,这意味着laravel仅充当后端,其余部分由vue js控制,从渲染视图到路由 我当前的laravel应用程序用于控制我的用户只需 把这个放在路线上: Route::get('admin', [ 'as' => 'admins.admin.index', 'uses' => 'UserController@index

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

我当前的laravel应用程序用于控制我的用户只需

把这个放在路线上:

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?

控制的,因此您可以通过routeConfig中的
beforeEnter()
在转到某个路由之前执行检查。样本如下:

const路由器=新的VueRouter({
路线:[
{
路径:'/foo',
组成部分:富,
beforeEnter:(到、从、下一个)=>{
//…在这里结账
}
}
]

})
您可以通过routeConfig中的
beforeEnter()
在前往特定路线之前执行检查。样本如下:

const路由器=新的VueRouter({
路线:[
{
路径:'/foo',
组成部分:富,
beforeEnter:(到、从、下一个)=>{
//…在这里结账
}
}
]

})
为了简化权限检测逻辑,您可以使用CASL-


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

为了简化权限检测逻辑,您可以使用CASL-


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

如何将其集成到laravel mysql?我发现只有mongoDBTo与laravel和MySQL集成,您需要将CASL移植到PHP。是用英文写的JavaScript@LaurensiusTony此外,您还可以在策略和门中添加其他属性,以便能够定义条件。如果没有条件,它应该很容易使用。我计划尽快发表一篇关于如何将其集成到LaravelMySQL的文章?我发现只有mongoDBTo与laravel和MySQL集成,您需要将CASL移植到PHP。是用英文写的JavaScript@LaurensiusTony此外,您还可以在策略和门中添加其他属性,以便能够定义条件。如果没有条件,它应该很容易使用。我计划很快发表一篇关于这方面的文章