【问题标题】:Yii multiple systems with the same auth roles?Yii 具有相同身份验证角色的多个系统?
【发布时间】:2012-06-22 13:42:08
【问题描述】:

您好,我有 3 个基于 Yii 的系统,例如:

sys1.domain.com
sys2.domain.com
sys3.domain.com

现在,这 3 个系统共享相同的数据库、相同的用户和其他实体……当然还有 3 个 yii auth 表。

现在我的问题是,在配置身份验证时,如何为每个系统分离身份验证规则?

我正在使用 Yii 扩展“权限”来管理角色,如果这有帮助的话。

【问题讨论】:

    标签: authentication yii


    【解决方案1】:

    由于您有三个系统 sys1、sys2 和 sys3 的单个 DB,并且您只想要不同的身份验证表,您可以添加三个身份验证表 auth_sys3、auth_sys2、auth_sys1 并在每个系统写入配置的配置文件中或在全局位置写入php 逻辑将 auth_sys1、auth_sys2、auth_sys3 的别名设为 auth,因此您无需对内部代码进行任何更改即可调用 auth。

    【讨论】:

    • 我试图这样做,但 CDbAuthManager 使用与用户模型所在的数据库相同的数据库......这个想法可行......但不知道如何在 yii 上配置它。 ..有什么想法吗?
    • 在 CDbAuthManager 中或在使用/调用身份验证表相关内容之前编写逻辑/条件以设置身份验证表名称的常量,例如 if(sys1){const auth = auth_sys1} 等..并插入保持核心身份验证表名替换为 auth const .....
    • 但我需要为系统之间的用户使用相同的数据库...只有不同的身份验证表...如果我将 CDbAuthManager 中的连接设置为包含身份验证表的连接,而不是用户将它不会给我一个错误...
    • 这种方法有效...我只需要从不同的数据库连接加载我的用户。
    猜你喜欢
    • 2020-12-26
    • 1970-01-01
    • 2014-04-24
    • 2018-03-05
    • 2015-05-31
    • 2020-01-16
    • 1970-01-01
    • 2021-03-10
    • 2019-10-04
    相关资源
    最近更新 更多