Maison  >  Article  >  développement back-end  >  Yii2 réalise une connexion et une sortie synchrones multi-domaines et inter-domaines

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

高洛峰
高洛峰original
2017-02-06 16:54:051397parcourir

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 !

Déclaration:
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