两个完全不同的前端用户࿼;在Yii2高级

两个完全不同的前端用户࿼;在Yii2高级,yii2,yii2-advanced-app,yii2-user,Yii2,Yii2 Advanced App,Yii2 User,我正在使用高级Yii2模板开发一个应用程序 我已经为后端和前端用户分别设置了两个不同的会话。 我的main.php文件如下所示: // frontend/config/main.php ... 'user' => [ 'identityClass' => 'common\models\User', 'enableAutoLogin' => true, ], ... // backend/config/main.php ... 'user' => [

我正在使用高级Yii2模板开发一个应用程序

我已经为后端和前端用户分别设置了两个不同的会话。 我的main.php文件如下所示:

// frontend/config/main.php
...
'user' => [
    'identityClass'   => 'common\models\User',
    'enableAutoLogin' => true,
],
...

// backend/config/main.php
...
'user' => [
    'identityClass'   => 'backend\models\BEUser',
    'enableAutoLogin' => true,
],
...
当我尝试实现第二个独立的前端用户时,我会遇到问题。现在,当我登录到不同的用户模型时,我也以普通前端用户的身份登录

我不想使用RBAC,因为我希望两种不同类型的用户完全分开。这意味着,不同的数据库表、不同的会话名称、不同的登录页面,以及对网站完全不同的部分和页面的访问

我想在frontend/config/main.php中添加一个单独的“user2”条目,但我在互联网上找不到任何类似的指南。所以我认为这是不可能的

你对此有什么建议吗?
多谢各位

我还没有真正测试过这一点,但是您可以通过在前端创建一个
user2
来实现。创建一个
LoginForm2
模型,它使用
user2
组件来登录,而不是使用
user
组件

前端配置:

'user2' => [
    'class' => 'yii\web\User',
    'identityClass'   => 'common\models\User2',
    'enableAutoLogin' => true,
],
public function login() {
    if ($this->validate()) {
        return Yii::$app->user2->login($this->getUser(), 1800);
    }
    return false;
}
LoginForm2.php:

'user2' => [
    'class' => 'yii\web\User',
    'identityClass'   => 'common\models\User2',
    'enableAutoLogin' => true,
],
public function login() {
    if ($this->validate()) {
        return Yii::$app->user2->login($this->getUser(), 1800);
    }
    return false;
}

为什么不添加第二个前端呢?我已经考虑过了。不过,这似乎不太值得努力。我需要第二个用户只为一个或两个单独的页面。我不知道,用不同的配置、控制器等创建一个独立的前端似乎太费劲了。必须有另一种方式。“不同的数据库表,不同的会话名称,不同的登录页面,以及访问网站完全不同的部分和页面”。考虑到以上所有因素,似乎值得付出努力。也更容易测试和维护。好的。关于在yii2中创建不同的前端区域,您可以在internet上提供一个小指南或一个小操作方法吗?谢谢。通过实施上述操作,我将面临“设置未知属性:common\models\User2::identityClass”错误。有什么想法吗?你测试过你发布的代码吗?不幸的是,这也不起作用。当我使用user2帐户登录时,我也可以作为普通用户访问我不想访问的网站的其他部分。