2016-08-16 83 views
0

我想在前端和後端分開實現rbac。 我有一個後臺管理員表,管理員用戶使用這個表。也是一個普通用戶的表格,他們使用這個表格(用於登錄,註冊等)。如何在前端和後端分別實現yii2-rbac?

在rbac相關表(auth_assignment)中,'user_id'字段必須從另一個表(用戶或管理員)進行賦值,並且無法從admin和users表中獲取值。

是否有可能爲前端和後端分開實現rbac? 如果是的話怎麼樣?

回答

0

這是可能的。可以配置RBAC DbManager表,以便您可以爲不同的表準備兩個RBAC組件,一個用於前端,另一個用於後端。

這是用於分配的屬性:

public $assignmentTable = '{{%auth_assignment}}'; 
+0

謝謝answere.but,這個屬性在哪裏?在哪個文件中? –

+1

命名空間'yii \ rbac \ DbManager' - '\ vendor \ yiisoft \ yii2 \ rbac \ DbManager.php' – Bizley

0

看看這個鏈接。它對RBAC非常有用。

https://github.com/yiisoft/yii2/blob/master/docs/guide/security-authorization.md

的RBAC是及部件就共同部分基地。通常如果他們在DB基地使用通用模型和共享相關的數據庫表..

可以申報組件部分該元素在cofig區域中的main.php,如果你在common dir中這樣做,這個組件si在環境(前端,後端)之間正確共享。

例如:公共/配置/ main.php

'components' => [ 
    ..... 
    'authManager' => [ 
     'class' => 'yii\rbac\DbManager', 
     'cache' => 'cache', 
      .... 
    ], 

這意味着他們可以前端和後端之間自然共享..

+0

在這種情況下的配置不能被共享,因爲它應使用兩個不同的'user'表格提供RBAC分配。 – Bizley