0

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

在 rbac 相关表 (auth_assignment) 中,“user_id”字段必须从另一个表(用户或管理员)中获取值,并且无法从管理员和用户表中获取值。

是否可以分别为前端和后端实现 rbac?如果是的话怎么办?

4

2 回答 2

1

有可能的。可以配置 RBAC DbManager 表,以便您可以使用不同的表准备两个 RBAC 组件,一个用于前端,另一个用于后端。

这是分配的属性:

public $assignmentTable = '{{%auth_assignment}}';
于 2016-08-16T06:32:33.800 回答
0

看看这个链接。它对 RBAC 非常有用。

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

RBAC 组件基于通用部分.. 通常,如果它们基于 DB,则您使用通用模型并共享相关的 db 表..

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

例如:common/config/main.php

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

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

于 2016-08-16T06:27:57.363 回答