激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - Yii2下session跨域名共存的解決方案

Yii2下session跨域名共存的解決方案

2021-04-16 18:08_string_ PHP教程

這篇文章主要介紹了Yii2下session跨域名共存的解決方案,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

前面談過session相關配置,在開發的時候,常需要跨域共用session的是登錄模塊,我相信很多開發的朋友的都遇到過,只需要一個地方登錄,相關聯的網站也是處于登錄狀態。兩種情況:一種9streets.cn和a.9streets.cn之間,另一種是a.com b.com之間,這幾天總結了一下處理方法。

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

  • 客戶端訪問同一個sessionId,
  • 所有域名對應的服務器訪問的session的數據的位置必須一致。

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

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

?
1
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中配置

?
1
2
3
4
5
6
7
8
9
10
11
12
$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:

?
1
2
3
4
5
6
7
8
'user' => [
  'enableAutoLogin' => true,
  'identityCookie' => ['name' => '_identity', 'httpOnly' => true, 'domain' => '.' . DOMAIN],
],
'session' => [
  'cookieParams' => ['domain' => '.' . DOMAIN, 'lifetime' => 0],
  'timeout' => 3600,
],

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.yiichina.com/tutorial/1073

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久精品国产清自在天天线 | 91免费版在线 | 久久综合给合久久狠狠狠97色69 | 91精品国产92久久久久 | 欧美在线观看视频网站 | 成年人视频在线免费观看 | 久久网站热最新地址4 | 国产好片无限资源 | av亚洲在线观看 | 黄色一级毛片免费看 | 二区三区在线观看 | 国产一级毛片av | 国产精品久久久久影院老司 | 欧美一区二区三区免费不卡 | 国产精品久久久乱弄 | 国产一区二区欧美精品 | 国产精品久久久久久久午夜片 | 日本中文字幕高清 | 国产91精品一区二区麻豆亚洲 | 成人午夜视屏 | 亚洲99| 久久久综合 | 青热久思思 | 日韩大片在线永久观看视频网站免费 | 午夜视频在线看 | 欧美一级黄色免费看 | 欧美成在人线a免费 | 成人在线观看一区二区三区 | 色视频91 | 日本一区二区三区视频在线 | 成人三级在线播放 | 欧美18videos性处按摩 | 曰批全过程40分钟免费视频多人 | 免费在线观看亚洲 | 综合网日日天干夜夜久久 | 中文字幕亚洲一区二区三区 | 国产精品一区网站 | 日韩欧美动作影片 | 一区二区三区欧美日韩 | 圆产精品久久久久久久久久久 | 91精品国产乱码久久久久 |