Laravel护照

时间:2017-03-06 23:30:02

标签: php laravel laravel-passport

我目前正在研究构建SaaS构建管理工具。 我想知道的是,如果我使用laravel passport作为api令牌,我该如何为用户分配角色例如:

SuperAdmin:可以创建项目|可以创建新用户并为用户分配角色。

管理员:可以查看项目。

因为我希望能够根据用户权限隐藏前端的元素。

例如,如果我使用传统的laravel应用程序,我可以使用委托并使用刀片指令@role(' admin')根据用户权限类型显示元素。

1 个答案:

答案 0 :(得分:3)

您可以使用政策和门:https://laravel.com/docs/5.4/authorization

然后它变得像

一样简单
$user = Auth::guard('api');
if ($user->can('create', Post::class)) {
    // Do something
}

要隐藏/显示前端的内容,当您获得用户时,您也可以获得他们的权限

$user = Auth::guard('api');
$user->isAdmin = $user->can('create', Post::class); //returns true or false

在你的前端,你用它显示/隐藏东西。例如:使用角度

<li ng-if="vm.user.isAdmin">Admin</li>