2017-03-06 168 views
1

我目前正在研究構建SaaS建設管理工具。 我想知道的是,如果我使用laravel護照作爲API令牌,我怎樣才能爲用戶分配角色例如:Laravel護照

SuperAdmin:可以創建項目|可以創建新用戶並將角色分配給用戶。

管理員:可以查看項目。

因爲我希望能夠根據用戶權限隱藏我前端的元素。

例如,如果我做了一個傳統的laravel應用程序,我可以使用委託並使用blade指令@role('admin')來顯示基於用戶權限類型的元素。

回答

2

你可以利用政策和蓋茨: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> 
+0

哇,這很簡單。謝謝!還有一個問題。我對護照很陌生。用戶權限是否存儲在數據庫中,所以在前端我可以檢查是否有用戶權限? –

+0

是的,護照有其遷移。所以它節省了很多東西。但是隻需檢查其策略即可獲得用戶的權限。這有很多不同的方法。你可以看到我是怎麼做到的,假設只有管理員可以'創建'帖子。 – EddyTheDove

+0

這很有道理。感謝您的幫助!我正在走向前端的角度路線!你的幫助是非常有用的,並將幫助我通過我的學位項目再次感謝! 5 * –