我正在将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控制的?
您可以在通过routeConfig中的beforeEnter()
前往某条路线之前执行检查。样品在这里:
const router = new VueRouter({
routes: [
{
path: '/foo',
component: Foo,
beforeEnter: (to, from, next) => {
// ... Do your checkings here
}
}
]
})
要简单地使用权限检测逻辑,您可以使用CASL - https://github.com/stalniy/casl
文档中的文档和文章中有很多有趣的东西,解释了如何与Vue和其他流行框架集成!