如何在 yii2 中使用身份类对管理员和员工进行身份验证

Posted

技术标签:

【中文标题】如何在 yii2 中使用身份类对管理员和员工进行身份验证【英文标题】:How to authenticate admin and employee using identityclass in yii2 【发布时间】:2017-08-15 14:24:40 【问题描述】:

我们可以使用 yii2 中提供的 identityclass 功能对员工进行身份验证。如果管理员不是员工怎么办?

config.php 中能否有两个身份类或如何实现这种情况?

【问题讨论】:

您不需要为它设置两个身份类别。明智地使用 rbac,它可以通过许可来完成。 我们如何使用 RBAC 来做到这一点 创建一个表用户组(amin、employee、moderator...)并使用这些名称创建角色,然后在您的用户表中使用该用户组。按照用户指南创建权限和角色。 yiiframework.com/doc-2.0/… 并使用 \Yii::$app->user->can('PERMISSON') 签入您的控制器。就这么简单。 正如 Samit 所说,您可以使用 RBAC 来完成 - 创建两个角色“Admin”和“Employee”并将它们分配给用户。或者您可以创建两个不同的应用程序(使用高级 yii2 模板)并为每个应用程序实现 2 个身份类(当然您应该在 DB 中以某种方式划分用户) 我只有 Employee 表,其中字段是(EmpId,FirstName,MiddleName,)等。现在我已将 identityClass 分配为 app\models\Employee。我创建了四个表 auth_item、auth_item_child、auth_rule 和 cuth_assignment,并将条目插入 auth_item 作为管理员和外勤人员(即创建的角色)。同样,我还将管理员分配给一名员工,将现场官员分配给另外两名员工。现在在 Controller 中,我已经编写了上述角色的访问规则。现在,当第一个现场官员创建小组时,他应该只能查看和更新​​他的小组详细信息,而不能查看和更新​​其他人 【参考方案1】:

是的,您可以按照以下链接为管理员类型用户创建另一个身份类别:

访问multiple user identity in config Yii2

【讨论】:

以上是关于如何在 yii2 中使用身份类对管理员和员工进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章

如何以管理员身份登录和普通员工有不同的侧菜单

YII2 根据用户 id 在视图文件中显示数据

如何在微服务和API网关架构中对不同的配置文件进行身份验证和授权

Yii2 - 使用多个后端会话和cookie

如何在管理面板中第一次登录django员工用户?

如何在 C# 中使用 Random 类对数组进行洗牌 [重复]