中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Yii2怎么實現session跨域名共存

發布時間:2021-03-08 14:02:34 來源:億速云 閱讀:155 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關使用Yii2怎么實現session跨域名共存,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

無論是一二級域名,和不同域名下的跨域,無非要達到兩點:

  • 客戶端訪問同一個sessionId,

  • 所有域名對應的服務器訪問的session的數據的位置必須一致。

1.訪問共同的sessionId主要是通過把當前的sessionId寫進cookie里面

cookie在不同域名下是不能訪問的,我們需要在訪問在后臺設置用戶在登錄的時候,把需要共用的登錄信息的域名,如果是在1,2級域名下,直接把cookie設置為所屬主域名,例如:

setcookie("session_id",session_id(),time()+3600*24*365*10,"/",".a.com");

也許你會問:如果是在不同的域名呢?采用P3P技術簡單解決,實現原理,在訪問網站x.com的時候,y.com程序觸發y.com文件的寫入sessionid值,sessionid值便可以獲取,然后把seesion值存入數據庫,取相同的sessionid值便可。這就要求y.com里面的程序文件必需能跨域訪問,默認情況下,瀏覽器是不能跨域設置cookie的,加上p3p頭后才行。在對應php文件加上:header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');

2.session數據存儲位置一致的實現方法

session該數據默認情況下是存放在服務器的tmp文件下的,是以文件形式存在,而非存儲在服務器的內存中,在這里我們得修改為所有域下都能訪問的方式。網上介紹了數據庫存儲,文件形式存儲,內存存儲, 如果用數據庫存儲session數據,網站的訪問量很大的話,SESSION 的讀寫會頻繁地對數據庫進行操作,效率就會明顯降低,可以考慮存在內存服務器來實現,下面的session.rar里面介紹的是數據庫存session的實例。

在yii2下 處理這中問題,根據網上搜到的教程 終配置成功教程如下:

在frontend的config文件夾中main.php中配置

$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 和 Session:

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

這里在配置項的user和session里 我把domain寫死了例如:'domain'=>'.baidu.com',這樣就不用判斷了.

關于使用Yii2怎么實現session跨域名共存就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

定西市| 洪湖市| 大庆市| 彭泽县| 方正县| 遵义市| 扎赉特旗| 桃源县| 浮山县| 陆丰市| 文山县| 运城市| 平顶山市| 新郑市| 广宁县| 四子王旗| 德钦县| 昌宁县| 高台县| 霸州市| 云龙县| 湖南省| 普兰店市| 呼图壁县| 平山县| 遵义市| 高唐县| 从江县| 会泽县| 获嘉县| 焉耆| 江津市| 海盐县| 乌鲁木齐市| 个旧市| 晋江市| 贡觉县| 曲阳县| 舟山市| 宜都市| 泸溪县|