Yii2的基础模板中的用户分离

Separate users in Yii2's basic template

我正在使用 Yii2,只是无法分离用户。我的应用有两个模块。

这是我在 web.php 中的配置:

'frontendUser' => [
      'class' => 'yii\web\User',
      'identityClass' => 'app\models\User',
      'enableAutoLogin' => false,
      'loginUrl' => ['frontend/default/index'],
],
'user' => [
      'identityClass' => 'app\models\Owner',
      'enableAutoLogin' => false,
      'loginUrl' => ['arena/default/login'],
],

问题是当我使用上述之一登录时,Yii::$app->user->isGuest 和 Yii::$app->frontendUser->isGuest returns 都是正确的,并登录。

我只找到了高级模板的解决方案...

谢谢,

您需要进行的配置比您所做的要多一些。

就像现在一样,他们都在您的会话中保存相同的变量,并且都使用相同的 cookie。

'frontendUser' => [
  'class' => 'yii\web\User',
  'identityClass' => 'app\models\User',
  'enableAutoLogin' => false,
  'loginUrl' => ['frontend/default/index'],
  'identityCookie' = ['name' => '_feIdentity', 'httpOnly' => true], // THIS
  'idParam' => '__feId', // THIS
  'authTimeoutParam' => '__feExpire', // THIS, only if you want to keep separate expiry times
], 
'user' => [
  'identityClass' => 'app\models\Owner',
  'enableAutoLogin' => false,
  'loginUrl' => ['arena/default/login'],
],

这会指示前端用户对 store/retrieve 数据使用不同的变量,有效地将其分离到另一个用户。

查看 yii\web\User 文档以获得解释。