Heim  >  Artikel  >  Backend-Entwicklung  >  Yii2 realisiert die domänenübergreifende synchrone Anmeldung und Beendigung mehrerer Domänen

Yii2 realisiert die domänenübergreifende synchrone Anmeldung und Beendigung mehrerer Domänen

高洛峰
高洛峰Original
2017-02-06 16:54:051397Durchsuche

Während des Plattformentwicklungsprozesses ist das Projekt in zwei Teile unterteilt: Frontend (Frontend) www.xxx.com und Backend (Backend) yun.xxx.com. Wir wissen, dass der Domainname gebunden ist ist nicht gebunden, das Frontend Der Hintergrund kann sich synchron an- und abmelden, ist jedoch nach der Bindung des Domänennamens ungültig. Der Grund dafür ist, dass der Sitzungsbereich unterschiedlich ist. Der Sitzungsbereich der beiden Domänennamen ist nur auf ihre eigenen Domänennamen beschränkt. Unsere Lösung besteht darin, die Bereiche verschiedener Domänennamen der zweiten Ebene in den Domänennamen der obersten Ebene xxx.com zu ändern.

Fügen Sie den folgenden Code in common/config/main.PHP hinzu:

//跨域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);

Ändern Sie den Abschnitt „Komponenten“ und ändern Sie den Sitzungsbereich

'user' => [ 
      'identityClass' => 'common\models\User', 
      'enableAutoLogin' => true, 
      'identityCookie' => ['name' => '_identity', 'httpOnly' => true, 'domain' => '.' . DOMAIN], 
    ], 
    'session' => [ 
      'cookieParams' => ['domain' => '.' . DOMAIN, 'lifetime' => 0], 
      'timeout' => 3600, 
    ],

Durch Nach der Konfiguration können mehrere Domänennamen der zweiten Ebene gleichzeitig an- und abgemeldet werden.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er zum Lernen aller beiträgt. Ich hoffe auch, dass jeder die PHP-Chinesisch-Website unterstützt.

Weitere Artikel zur Implementierung der domänenübergreifenden synchronen An- und Abmeldung in mehreren Domänen durch Yii2 finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn