Yii2 réalise une connexion et une sortie synchrones multi-domaines et inter-domaines

高洛峰
Libérer: 2023-03-05 13:24:01
original
1396 Les gens l'ont consulté

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);
Copier après la connexion

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, 
    ],
Copier après la connexion

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 !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!