如何在前端和后端分开实现 yii2-rbac?

How can I implement yii2-rbac in frontend and backend separate?

我想在前端和后端分开实现 rbac。 我有一个 table 供后端管理员使用,管理员用户使用此 table。对于普通用户也是一个 table,他们使用这个 table(用于登录、注册等)。

在与 table (auth_assignment) 相关的 rbac 中,'user_id' 字段的值必须来自另一个 table(用户或管理员),这是不可能得到的来自管理员和用户的值 table.

是否可以实现前后端分离的rbac? 如果是怎么办?

看看这个 link。它对 RBAC 非常有用。

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

RBAC 组件基于公共部分.. 通常,如果它们基于数据库,则您使用公共模型并共享相关数据库 table ..

您可以在 cofig 区域 main.php 的组件部分中声明此元素,如果您在公共目录中执行此操作,则此组件将在两个环境(前端、后端)之间正确共享。

例如:common/config/main.php

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

这意味着它们可以在前端和后端之间自然共享..

有可能。可以配置 RBAC DbManager 表,因此您可以准备两个 RBAC 组件,一个用于前端,第二个用于后端,具有不同的表。

这是要赋值的属性:

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