Yii多个用户登录应用程序

时间:2014-09-18 11:36:40

标签: yii

我是Yii框架中的新手,我只是设置了一个应用程序并将前端& 后端部分。用户都可以正确注册/登录。现在我想从前端站点登录不同的用户。 示例:前端用户是两种类型

                    1. Customer
                    2. Merchant 

我想设置主题的不同角色。如何实现,请与我分享。

1 个答案:

答案 0 :(得分:1)

您可能需要使用Yii的RBAC。为了在yii中实现和使用RBAC,您需要执行以下步骤:

1-configure main.php位于' /path/to/yourApp/protected/config/main.php'

'authManager'=>array(
        'class'=>'CDbAuthManager',
        'connectionID'=>'db', //your database config name
 ),

2 - 将yii的rbac数据库方案导入您的数据库。您可以在/path/to/yii/framework/web/auth/目录

下找到它

3 - 添加您的操作。诸如' VIEW_POST'等操作或者' EDIT_POST':

$auth=Yii::app()->authManager;
$auth->createOperation('VIEW_POST','view a post');
$auth->createOperation('EDIT_POST','edit a post');

4 - 创建你的角色。例如,在您的情况下,您将有两个角色。第一个Customer和第二个Merchant

$role=$auth->createRole('CUSTOMER');

5-为角色分配操作:

$role->addChild('VIEW_POST');

6-全部完成!您可以限制访问权限,如下所示:

if(Yii::app()->user->checkAccess('VIEW_POST'))
{
//user has access to view a post
}else{
//logged in user has no access to view a post
}

您还可以使用以下角色检查访问权限:

if(Yii::app()->user->checkAccess('CUSTOMER')) {}

要为用户分配角色,请使用assign方法:

$auth->assign('CUSTOMER','USERNAME | USER ID'); //user will hold the CUSTOMER ROLE

还可以注意到,我假设您已经实现了身份验证类。您可以在以下链接中找到有关Yii的RBAC和身份验证的更多信息,这是Yii的官方文档:

Yii Authentication and Authorization