Cet article présente principalement la solution pour la coexistence de sessions inter-domaines sous Yii2. Le contenu est assez bon, je vais le partager avec vous maintenant et le donner comme référence.
J'ai parlé plus tôt des configurations liées à la session. Pendant le développement, le module de connexion qui doit souvent être partagé entre les domaines est le module de connexion. Je pense que de nombreux amis développeurs l'ont rencontré. Vous n'avez besoin que d'un seul endroit pour vous connecter. dans, et le site Web associé est également connecté. Il y a deux situations : l'une se situe entre 9streets.cn et a.9streets.cn, et l'autre se situe entre a.com et b.com. J'ai résumé les méthodes de gestion ces derniers jours.
Qu'il s'agisse d'un nom de domaine de premier et deuxième niveaux, ou de cross-domain sous différents noms de domaine, deux points doivent être atteints :
Le le client accède au même sessionId,
L'emplacement des données de session accédées par les serveurs correspondant à tous les noms de domaine doit être cohérent.
1. L'accès à l'ID de session commun se fait principalement en écrivant l'ID de session actuel dans le cookie.
Les cookies ne sont pas accessibles sous des noms de domaine différents, nous en avons besoin lors de l'accès. et en configurant l'utilisateur pour qu'il se connecte en arrière-plan, définissez le nom de domaine qui doit être partagé avec les informations de connexion. S'il s'agit d'un nom de domaine à 1 ou 2 niveaux, définissez directement le cookie sur le nom de domaine principal, par exemple : <.>
setcookie("session_id",session_id(),time()+3600*24*365*10,"/",".a.com");
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
$host = explode('.', $_SERVER["HTTP_HOST"]); if (count($host) > 2) { define('DOMAIN', $host[1] . '.' . $host[2]); } else { define('DOMAIN', $host[0] . '.' . $host[1]); } define('DOMAIN_HOME', 'www.' . DOMAIN); define('DOMAIN_USER_CENTER', 'man.' . DOMAIN); define('DOMAIN_API', 'api.' . DOMAIN); define('DOMAIN_EMAIL', 'mail.' . DOMAIN); define('DOMAIN_LOGIN', 'login.' . DOMAIN); define('DOMAIN_IMG', 'img.' . DOMAIN);
'user' => [ 'enableAutoLogin' => true, 'identityCookie' => ['name' => '_identity', 'httpOnly' => true, 'domain' => '.' . DOMAIN], ], 'session' => [ 'cookieParams' => ['domain' => '.' . DOMAIN, 'lifetime' => 0], 'timeout' => 3600, ],
Problèmes liés à l'utilisation de jquery dans le framework Yii
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!