Lors du processus de développement de la plateforme, le projet est divisé en deux parties : frontend (frontend) www.xxx.com et backend (backend) yun.xxx.com Nous savons que lorsque le nom de domaine est lié. n'est pas lié, l'arrière-plan frontend peut se connecter et se déconnecter de manière synchrone, mais il deviendra invalide après avoir lié le nom de domaine. La raison en est que la portée de la session est différente. La portée de session des deux noms de domaine est uniquement limitée à leurs propres noms de domaine. Notre solution consiste à remplacer les portées des différents noms de domaine de deuxième niveau par le nom de domaine de premier niveau xxx.com.
Ajoutez le code suivant dans common/config/main.PHP :
//跨域session域名配置,获取当前主机名 $host_array = explode('.', $_SERVER["HTTP_HOST"]); //针对com域名,获取顶级域名 if (count($host_array) == 3) { define('DOMAIN', $host_array[1] . '.' . $host_array[2]); } //针对com.cn域名 elseif (count($host_array) == 4) { define('DOMAIN', $host_array[1] . '.' . $host_array[2]. '.' . $host_array[3]); } else{ //echo "本系统不支持本地访问,请配置域名";exit; } define('DOMAIN_HOME', 'www.' . DOMAIN); define('DOMAIN_YUN', 'yun.' . DOMAIN); define('DOMAIN_API', 'api.' . DOMAIN); define('DOMAIN_EMAIL', 'mail.' . DOMAIN); define('DOMAIN_IMG', 'img.' . DOMAIN);
Modifiez la section des composants et changez la portée de la session
'user' => [ 'identityClass' => 'common\models\User', 'enableAutoLogin' => true, 'identityCookie' => ['name' => '_identity', 'httpOnly' => true, 'domain' => '.' . DOMAIN], ], 'session' => [ 'cookieParams' => ['domain' => '.' . DOMAIN, 'lifetime' => 0], 'timeout' => 3600, ],
Par ce qui précède Après la configuration, plusieurs noms de domaine de deuxième niveau peuvent être connectés et déconnectés simultanément.
Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. J'espère également que tout le monde soutiendra le site Web PHP chinois.
Pour plus d'articles liés à la mise en œuvre par Yii2 de la connexion et de la déconnexion par synchronisation multi-domaines entre domaines, veuillez faire attention au site Web PHP chinois !