【问题标题】:How can I implement yii2-rbac in frontend and backend separate?如何在前端和后端分别实现 yii2-rbac?
【发布时间】:2016-08-16 15:23:12
【问题描述】:

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

在 rbac 相关表 (auth_assignment) 中,“user_id”字段必须从另一个表(user 或 admin)中获取值,并且无法从 admin 和 users 表中获取值。

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

【问题讨论】:

    标签: yii2 yii2-rbac


    【解决方案1】:

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

    这是赋值的属性:

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

    【讨论】:

    • 感谢回答。但是,这个属性在哪里?在哪个文件中?
    • 命名空间yii\rbac\DbManager - \vendor\yiisoft\yii2\rbac\DbManager.php
    【解决方案2】:

    查看此链接。它对 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',
              ....
        ],
    

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

    【讨论】:

    • 在这种情况下无法共享配置,因为它应该使用两个不同的user 表进行 RBAC 分配。
    猜你喜欢
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 1970-01-01
    • 2021-04-28
    • 2017-12-21
    • 2016-06-09
    • 2016-04-09
    • 1970-01-01
    相关资源
    最近更新 更多