cookies - Yii2 Advanced - Share session between frontend and mainsite (duplicate of frontend for www) -
i have custom members system have made: yii2 members system. can refer full details, or install can work question.
i have frontend
, backend
yii2 provides, few modifications separate sessions/cookies backend
works admin model , pulls admin
table. similar old traditional member systems.
mainsite
clone of frontend
, it's role main website. when go www.site.com
or site.com
.
here 3 apps , example domains:
- mainsite = www.site.com or site.com
- frontend = users.site.com
- backend = admin.site.com
when user logs in (users.site.com/site/login
) , go homepage (mainsite
@ www.site.com
) want know logged in , show username. how frontend operates default advanced app.
from have far, login , head mainsite , reads an internal server error occurred.
. doesn't yii error, server error? when in yii logs under runtime, mentions access control:
2017-04-14 13:38:25 [127.0.0.1][1][-][error][yii\web\httpexception:403] exception 'yii\web\forbiddenhttpexception' message 'you not allowed perform action.' in /applications/xampp/xamppfiles/htdocs/yii2-members-system/vendor/yiisoft/yii2/filters/accesscontrol.php:151
here of configs.
mainsite/config/main.php
'components' => [ 'assetmanager' => [ 'bundles' => false, ], 'request' => [ 'csrfparam' => '_csrf-mainsite', ], 'user' => [ 'class' => 'common\components\user', 'identityclass' => 'common\models\user', 'enableautologin' => true, 'identitycookie' => [ 'name' => '_identity-frontend', 'httponly' => true, 'domain' => '.yii2-members-system.dev', ], ], 'session' => [ 'name' => 'advanced-frontend', 'cookieparams' => [ 'domain' => '.yii2-members-system.dev', 'httponly' => true, ], ], 'urlmanager' => [ 'enableprettyurl' => true, 'showscriptname' => false, 'rules' => [ ], ], ],
frontend/config/main.php
'components' => [ 'assetmanager' => [ 'bundles' => false, ], 'request' => [ 'csrfparam' => '_csrf-frontend', ], 'user' => [ 'class' => 'common\components\user', 'identityclass' => 'common\models\user', 'enableautologin' => true, 'identitycookie' => [ 'name' => '_identity-frontend', 'httponly' => true, 'domain' => '.yii2-members-system.dev', ], ], 'session' => [ 'name' => 'advanced-frontend', 'cookieparams' => [ 'domain' => '.yii2-members-system.dev', 'httponly' => true, ], ], 'urlmanager' => [ 'enableprettyurl' => true, 'showscriptname' => false, 'rules' => [ ], ], ],
vhosts
<virtualhost *:80> servername yii2-members-system.dev serveralias yii2-members-system.dev documentroot "/applications/xampp/xamppfiles/htdocs/yii2-members-system/mainsite/web" errorlog "logs/mainsite.yii2-members-system.dev-error_log" customlog "logs/mainsite.yii2-members-system.dev-access_log" common </virtualhost> <virtualhost *:80> servername yii2-members-system.dev serveralias admin.yii2-members-system.dev documentroot "/applications/xampp/xamppfiles/htdocs/yii2-members-system/backend/web" errorlog "logs/admin.yii2-members-system.dev-error_log" customlog "logs/admin.yii2-members-system.dev-access_log" common </virtualhost> <virtualhost *:80> servername yii2-members-system.dev serveralias users.yii2-members-system.dev documentroot "/applications/xampp/xamppfiles/htdocs/yii2-members-system/frontend/web" errorlog "logs/users.yii2-members-system.dev-error_log" customlog "logs/users.yii2-members-system.dev-access_log" common </virtualhost>
you can share session between subdomain or main domain. per yii configuration, need configure below in frontend/config/main.php , mainsite/config/main.php.
'request' => [ 'csrfparam' => '_csrf-app', ], 'user' => [ 'identityclass' => 'common\models\user', 'enableautologin' => true, 'identitycookie' => ['name' => '_identity', 'httponly' => true, 'domain'=>'.yii2-members-system.dev', 'path'=>'/'], ], 'session' => [ 'name' => 'sessionname', 'savepath'=> __dir__ . '/../../sessiontmp' ],
in configuration, session name, session save path, identity cookie path , domain should match other subdomain share session between 2 yii app.
so create 1 tmp folder inside app , point session save path. above.
i hope, help.
Comments
Post a Comment