2017-12-28 24 views
1

ケースを教えてください。 基本的に私はyii2の高度なテンプレートに別のバックエンドを持っています。 なぜですか?これが理由ですYii2 - 複数のバックエンドセッションおよびクッキーの使用

私のオフィスには、各支店の多くの支店がある国に多くの支社があります。

このdepartements、私はモジュールとしてそれらの解釈があります。 departementの名前は同じですが、まれに、多​​くの異なった動作があります( )。

本社の管理者の例では、ブランチ オフィスでは従業員の名前を消去できますが、支店の支店は削除できません。

だから、私はこのようなバックエンドのフォルダに各それらを分離するために選択します。

backend (which is portal branch and also super-admin backend) 
    -modules 
    -human_resource 

backend-jkt (which is Jakarta Indonesia backend) 
    -modules 
    -human_resource 

enter image description here

私の質問は:ユーザーが正常にバックエンドにログインすると、その後、私は、リンクを作成し

backend-jktに、自動的にログインします。その逆として

バックエンドにログインしていない直接のバックエンド・JKT人が、とき、それは自動的にバックエンドのログインにリダイレクトだ、

が今私の状況は次のとおりです。ユーザーはバックエンドにログインしたときに、上記のようにリンク「ジャカルタ」をクリックすると、再度サインインする必要があります。

これは、バックエンドで

<?php 
$params = array_merge(
    require __DIR__ . '/../../common/config/params.php', 
    require __DIR__ . '/../../common/config/params-local.php', 
    require __DIR__ . '/params.php', 
    require __DIR__ . '/params-local.php' 
); 

return [ 
    'id' => 'app-backend', 
    'name' => 'Backend System', 
    'basePath' => dirname(__DIR__), 
    'controllerNamespace' => 'backend\controllers', 
    'bootstrap' => ['log'], 
    'modules' => [ 
     'mimin' => [ 
      'class' => '\hscstudio\mimin\Module', 
     ], 
     'SuperAdmin' => [ 
      'class' => 'backend\modules\super_admin\SuperAdmin', 
     ], 
    ], 
    'components' => [ 
     'user' => [ 
      'identityClass' => 'common\models\User', 
      'enableAutoLogin' => true, 
      'identityCookie' => [ 
       'name' => '_identity-backend', 
       'httpOnly' => true 
      ], 
     ], 
     'session' => [ 
      // this is the name of the session cookie used for login on the backend 
      'name' => 'advanced-backend', 
      'savePath' => sys_get_temp_dir(), 
     ], 
     'request' => [ 
      'cookieValidationKey' => 'IkR77lm93Rcb9TCoYTAZ', 
      'csrfParam' => '_csrf-backend', 
     ], 

     'assetManager' => [ 
      'bundles' => [ 
       'dmstr\web\AdminLteAsset' => [ 

       ], 
      ], 
     ], 

     'log' => [ 
      'traceLevel' => YII_DEBUG ? 3 : 0, 
      'targets' => [ 
       [ 
        'class' => 'yii\log\FileTarget', 
        'levels' => ['error', 'warning'], 
       ], 
      ], 
     ], 
     'errorHandler' => [ 
      'errorAction' => 'site/error', 
     ], 
     'urlManager' => [ 
      'suffix' => '.html', 
      'enablePrettyUrl' => true, 
      'showScriptName' => false, 
      'rules' => [ 
      ], 
     ], 

     'urlManagerBackendJkt' => [ 
      'class' => 'yii\web\urlManager', 
      'baseUrl' => '/backend-jkt/web/', 

      'enablePrettyUrl' => true, 
      'showScriptName' => false, 
      'rules' => [ 
       'http://jkt.tresnamuda.local/' => '@app/index', 
      ], 
     ], 
     'authManager' => [ 
      'class' => 'yii\rbac\DbManager', // only support DbManager 
     ], 

    ], 
    'as access' => [ 
     'class' => '\hscstudio\mimin\components\AccessControl', 
     'allowActions' => [ 
      // add wildcard allowed action here! 
      'site/*', 
      'debug/*', 
      // 'mimin/*', // only in dev mode 
     ], 
    ], 
    'params' => $params, 
]; 

そして、これはバックエンド・JKT

<?php 
$params = array_merge(
    require __DIR__ . '/../../backend/config/params.php', 
    require __DIR__ . '/../../backend/config/params-local.php', 
    require __DIR__ . '/params.php', 
    require __DIR__ . '/params-local.php' 
); 

return [ 
    'id' => 'app-backend_jkt', 
    'name' => 'Jkt Backend System', 
    'basePath' => dirname(__DIR__), 
    'controllerNamespace' => 'backend_jkt\controllers', 
    'bootstrap' => ['log'], 
    'modules' => [ 
     'mimin' => [ 
      'class' => '\hscstudio\mimin\Module', 
     ], 
    ], 
    'components' => [ 
     'user' => [ 
      'identityClass' => 'common\models\User', 
      'enableAutoLogin' => true, 
      'identityCookie' => [ 
       'name' => '_identity-backend', 
       'httpOnly' => true 
      ], 
     ], 
     'session' => [ 
      // this is the name of the session cookie used for login on the backend 
      'name' => 'advanced-backend', 
      'savePath' => sys_get_temp_dir(), 
     ], 
     'request' => [ 
      'cookieValidationKey' => 'IkR77lm93Rcb9TCoYTAZ', 
      'csrfParam' => '_csrf-backend', 
     ], 

     'assetManager' => [ 
      'bundles' => [ 
       'dmstr\web\AdminLteAsset' => [ 

       ], 
      ], 
     ], 

     'log' => [ 
      'traceLevel' => YII_DEBUG ? 3 : 0, 
      'targets' => [ 
       [ 
        'class' => 'yii\log\FileTarget', 
        'levels' => ['error', 'warning'], 
       ], 
      ], 
     ], 
     'errorHandler' => [ 
      'errorAction' => 'site/error', 
     ], 
     'urlManager' => [ 
      'suffix' => '.html', 
      'enablePrettyUrl' => true, 
      'showScriptName' => false, 
      'rules' => [ 
      ], 
     ], 

     'authManager' => [ 
      'class' => 'yii\rbac\DbManager', // only support DbManager 
     ], 

    ], 
    'as access' => [ 
     'class' => '\hscstudio\mimin\components\AccessControl', 
     'allowActions' => [ 
      // add wildcard allowed action here! 
      'site/*', 
      'debug/*', 
      // 'mimin/*', // only in dev mode 
     ], 
    ], 
    'params' => $params, 
]; 

答えて

0

ドメインとパスでseprateユーザーのブラウザに置くクッキーについてのご質問ですが、私のconfigですので、あなたは次のドメインのパスのためにそれを保存する必要があります、私はあなたにジャカルタに送信するユーザーIDとプライベートキーを送信することをお勧めします簡単なコマンドによるD:

if(private-key is Okey and you get $user-id by POST) { 

$user = User::findOne($user-id); 
Yii::$app->getUser()->login($user); 

} 

秘密鍵は、あなたのセキュリティを向上させることができることを、なぜ、あなたはそれを残すだけのユーザーIDを持って確認するか、しないことがあり、単純なまたは進歩であります!

関連する問題