我想在前端和后端分开实现rbac。 我有一个后台管理员表,管理员用户使用这个表。也是一个普通用户的表格,他们使用这个表格(用于登录,注册等)。如何在前端和后端分别实现yii2-rbac?
在rbac相关表(auth_assignment)中,'user_id'字段必须从另一个表(用户或管理员)进行赋值,并且无法从admin和users表中获取值。
是否有可能为前端和后端分开实现rbac? 如果是的话怎么样?
我想在前端和后端分开实现rbac。 我有一个后台管理员表,管理员用户使用这个表。也是一个普通用户的表格,他们使用这个表格(用于登录,注册等)。如何在前端和后端分别实现yii2-rbac?
在rbac相关表(auth_assignment)中,'user_id'字段必须从另一个表(用户或管理员)进行赋值,并且无法从admin和users表中获取值。
是否有可能为前端和后端分开实现rbac? 如果是的话怎么样?
这是可能的。可以配置RBAC DbManager表,以便您可以为不同的表准备两个RBAC组件,一个用于前端,另一个用于后端。
这是用于分配的属性:
public $assignmentTable = '{{%auth_assignment}}';
看看这个链接。它对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',
....
],
这意味着他们可以前端和后端之间自然共享..
在这种情况下的配置不能被共享,因为它应使用两个不同的'user'表格提供RBAC分配。 – Bizley
谢谢answere.but,这个属性在哪里?在哪个文件中? –
命名空间'yii \ rbac \ DbManager' - '\ vendor \ yiisoft \ yii2 \ rbac \ DbManager.php' – Bizley