2016-08-16 82 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