php - Yii2 Advanced Template -


i have installed , configured yii2 advanced template. saying want separate frontend login backend login, want opposite.

what want is, when login frontend, should remain logged in on backend side. tried different configurations when login frontend , go backend area i'm guest!

frontend: photography.dev backend: admin.photography.dev

by default says yii2 advanced template has same login both: frontend , backend, in case isn't true.

edit: updated complete backend, frontend , common configs

common:

return [ 'vendorpath' => dirname(dirname(__dir__)) . '/vendor', 'components' => [     'cache' => [         'class' => 'yii\caching\filecache',     ], ], ]; 

backend:

<?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', 'basepath' => dirname(__dir__), 'controllernamespace' => 'backend\controllers', 'bootstrap' => ['log'], 'modules' => [], 'components' => [     'user' => [         'identityclass' => 'common\models\user',         'enableautologin' => true,         'enablesession' => true,         'idparam' => '_user',         'identitycookie' => [             'name' => '_user',             'path'=>'/'         ]     ],     'urlmanager' => [         'enableprettyurl' => true,         'showscriptname' => false,         'rules' => [             '/' => 'site/index',             '<alias:login|logout|about|contact>' => 'site/<alias>'         ]     ],     'urlmanagerfrontend' => [         'class' => 'yii\web\urlmanager',         'baseurl' => 'http://photography.dev',         'enableprettyurl' => true,         'showscriptname' => false,     ],     'log' => [         'tracelevel' => yii_debug ? 3 : 0,         'targets' => [             [                 'class' => 'yii\log\filetarget',                 'levels' => ['error', 'warning'],             ],         ],     ],     'errorhandler' => [         'erroraction' => 'site/error',     ], ], 'params' => $params, ]; 

backend environment dev:

$config = [ 'components' => [     'request' => [         // !!! insert secret key in following (if empty) - required cookie validation         'cookievalidationkey' => '',     ], ], ]; 

frontend:

<?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-frontend', 'basepath' => dirname(__dir__), 'bootstrap' => ['log'], 'controllernamespace' => 'frontend\controllers', 'components' => [     'user' => [         'identityclass' => 'common\models\user',         'enableautologin' => true,         'enablesession' => true,         'idparam' => '_user',         'identitycookie' => [             'name' => '_user',             'path'=>'/'         ]     ],     'urlmanager' => [         'enableprettyurl' => true,         'showscriptname' => false,         'rules' => [             '/' => 'site/index',             'index' => 'site/index',             '<alias:login|logout|about|contact|index>' => 'site/<alias>'         ],     ],     'urlmanagerbackend' => [         'class' => 'yii\web\urlmanager',         'baseurl' => 'http://admin.photography.dev',         'enableprettyurl' => true,         'showscriptname' => false,     ],     'log' => [         'tracelevel' => yii_debug ? 3 : 0,         'targets' => [             [                 'class' => 'yii\log\filetarget',                 'levels' => ['error', 'warning'],             ],         ],     ],     'errorhandler' => [         'erroraction' => 'site/error',     ], ], 'params' => $params, ]; 

frontend dev environment:

$config = [ 'components' => [     'request' => [         // !!! insert secret key in following (if empty) - required cookie validation         'cookievalidationkey' => 'igk90gabgqg2jt5aq5pmcg1a3a9e_inq',     ], ], ]; 

make sure cookie uses same settings in both frontend backend part. because admin section located in subdomain , yii takes default domain value, should set domain setting, follows:

'user' => [     'identityclass' => 'common\models\user',     'enableautologin' => true,     'identitycookie' => [         'name'     => '_identity',         'path'     => '/',         'httponly' => true,         'domain'   => 'photography.dev',     ], ], 'session' => [     'name' => 'phpfrontendbackendsessid',     'cookieparams' => [         'httponly' => true,         'path'     => '/',         'domain'   => 'photography.dev',     ], ], 

the browser use specific cookie, cookie on admin.photography.dev overrule cookie on photography.dev

edit: if want change csrf cookie well, can use in frontend/config/main.php , backend/config/main.php:

'request' => [     'baseurl'    => '',     'csrfparam'  => '_csrf',     'csrfcookie' => [         'httponly' => true,         'path'     => '/',         'domain'   => 'photography.dev',     ], ], 

if this, make sure cookievalidationkey in frontend/config/main-local.php , backend/config/main-local.php same.


Comments