亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 php教程 php手冊 實現(xiàn)跨域名Cookie

實現(xiàn)跨域名Cookie

Jun 21, 2016 am 09:14 AM
cookie http quot

cookie

Cookie真是一個偉大的發(fā)明,它允許web開發(fā)者保留他們的用戶的登錄狀態(tài)。然而,當(dāng)你的站點或網(wǎng)絡(luò)
有一個以上的域名時就會出現(xiàn)問題了。


  在Cookie規(guī)范上說,一個cookie只能用于一個域名,不能夠發(fā)給其它的域名。因此,如果在瀏覽器中對
一個域名設(shè)置了一個cookie,這個cookie對于其它的域名將無效。如果你想讓你的用戶從你的站點中的其中
一個進行登錄,同時也可以在其它域名上進行登錄,這可真是一個大難題。


  我的解決方案將使用下面的一般框架:

一個預(yù)置的腳本將用來接受通過GET或COOKIE方式傳遞過來的sessionid號。它將比COOKIE優(yōu)先選擇GET
變量。所以,無論何時需要引用交叉的域名時,我們把sessionid做為一個URL參數(shù)進行發(fā)送。
修改Apache配置,用來實現(xiàn)重寫所有的交叉域名的cookie。這樣做的原因一會兒就會清楚了。
在任何時候出現(xiàn)一個交叉域名引用時使用變量。
第一步:創(chuàng)建預(yù)置腳本
  將下面的代碼加到預(yù)置腳本中(或出現(xiàn)在所有腳本之前的函數(shù)中)。


/* 支持交叉域名cookie... */

// 如果GET變量已經(jīng)設(shè)置了,并且它與cookie變量不同
//則使用get變量(更新cookie)
global $HTTP_COOKIE_VARS, $HTTP_GET_VARS;
if (isset($sessionid) && isset($HTTP_GET_VARS['sessionid']) && ($HTTP_COOKIE_VARS['sessionid'] != $HTTP_GET_VARS['sessionid'])) {
SetCookie('sessionid', $HTTP_GET_VARS['sessionid'], 0, '/', '');
$HTTP_COOKIE_VARS['sessionid'] = $HTTP_GET_VARS['sessionid'];
$sessionid = $HTTP_GET_VARS['sessionid'];
}

?>

  一旦這個代碼運行之后,一個全局的'sessionid'變量將可以用于腳本。它將保存著用戶的cookie中的
sessionid值,或者是通過GET請求發(fā)來的sessionid值。


第二步:為所有的交叉域名引用使用變量
  創(chuàng)建一個全局的配置文件,用于存放可以進行切換的域名的基本引用形式。例如,如果我們擁有
domain1.com和domain2.com,則如下設(shè)置:


$domains['domain1'] = "http://www.domain1.com/-$sessionid-";
$domains['domain2'] = "http://www.domain2.com/-$sessionid-";

?>

  現(xiàn)在,如果在代碼中如下做:


echo "Click here to contact us.";

?>
  你將產(chǎn)生如下的輸出:

Click here
to contact us.

  在這里sessionid已經(jīng)被插入到URL中去了。

  在這個地方,你可能會想"這樣可能會在web服務(wù)器上打開名為橫線,sessionid,橫線的子目錄?!?!?"。
然而,下面的步驟將提供一個必需的戲法,以便讓它能夠使用!


第三步:配置Apache
  現(xiàn)在,剩下的步驟就是配置apache來重寫這個URL:

http://www.domain2.com/-66543afe6543asdf6asd-/contact/
  變成這樣:

http://www.domain2.com/contact/?sessionid=66543afe6543asdf6asd
  并且這種url:

http://www.domain2.com/-66543afe6543asdf6asd-/contact/?email=yes
  變成這樣:

http://www.domain2.com/contact/?email=yes&sessionid=66543afe6543asdf6asd
  為了實現(xiàn)它,簡單地配置兩個虛擬服務(wù)器,作為domain1和domain2,如下操作:


DocumentRoot /usr/local/www/domain1
ServerName www.domain1.com
RewriteEngine on
RewriteRule ^/-(.*)-(.*\?.*)$ $2&sessionid=$1 [L,R,QSA]
RewriteRule ^/-(.*)-(.*)$ $2?sessionid=$1 [L,R,QSA]



DocumentRoot /usr/local/www/domain2
ServerName www.domain2.com
RewriteEngine on
RewriteRule ^/-(.*)-(.*\?.*)$ $2&sessionid=$1 [L,R,QSA]
RewriteRule ^/-(.*)-(.*)$ $2?sessionid=$1 [L,R,QSA]


  這些重寫的規(guī)則實現(xiàn)了上面兩個URL重寫的要求。

結(jié)論
  通過使用變量結(jié)合與apache的重寫功能,交叉域名cookie可以以一種簡單的方式實現(xiàn)。想要維護這樣的
系統(tǒng),無論什么時候鏈接交叉域名,在使用域名變量之外,什么也不用作了!在域名內(nèi)部的鏈接不需要進行
修改,因為cookie會工作正常。

  如果你有興趣看一下在生產(chǎn)網(wǎng)絡(luò)中實際運作中的系統(tǒng),請參觀http://www.familyhealth.com.au/。在
一些交叉域名鏈接上移動你的鼠標(biāo),并且看一下當(dāng)你點擊后它們是如何被重寫的。

  也許,使用這個技術(shù)唯一的問題就是無法刪除在用戶瀏覽器中的全部域名下的cookie。





本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
cookie是存在哪里 cookie是存在哪里 Dec 20, 2023 pm 03:07 PM

Cookie通常存儲在瀏覽器的Cookie文件夾中的,瀏覽器中的Cookie文件通常以二進制或SQLite格式存儲,如果直接打開Cookie文件,可能會看到一些亂碼或無法讀取的內(nèi)容,因此最好使用瀏覽器提供的Cookie管理界面來查看和管理Cookie。

電腦上的cookie在哪里 電腦上的cookie在哪里 Dec 22, 2023 pm 03:46 PM

電腦上的Cookie存儲在瀏覽器的特定位置,具體位置取決于使用的瀏覽器和操作系統(tǒng):1、Google Chrome, 存儲在C:\Users\YourUsername\AppData\Local\Google\Chrome\User Data\Default\Cookies中等等。

理解網(wǎng)頁重定向的常見應(yīng)用場景并了解HTTP301狀態(tài)碼 理解網(wǎng)頁重定向的常見應(yīng)用場景并了解HTTP301狀態(tài)碼 Feb 18, 2024 pm 08:41 PM

掌握HTTP301狀態(tài)碼的含義:網(wǎng)頁重定向的常見應(yīng)用場景隨著互聯(lián)網(wǎng)的迅猛發(fā)展,人們對網(wǎng)頁交互的要求也越來越高。在網(wǎng)頁設(shè)計領(lǐng)域,網(wǎng)頁重定向是一種常見且重要的技術(shù),通過HTTP301狀態(tài)碼來實現(xiàn)。本文將探討HTTP301狀態(tài)碼的含義以及在網(wǎng)頁重定向中的常見應(yīng)用場景。HTTP301狀態(tài)碼是指永久重定向(PermanentRedirect)。當(dāng)服務(wù)器接收到客戶端發(fā)

HTTP 200 OK:了解成功響應(yīng)的含義與用途 HTTP 200 OK:了解成功響應(yīng)的含義與用途 Dec 26, 2023 am 10:25 AM

HTTP狀態(tài)碼200:探索成功響應(yīng)的含義與用途HTTP狀態(tài)碼是用來表示服務(wù)器響應(yīng)狀態(tài)的數(shù)字代碼。其中,狀態(tài)碼200表示請求已成功被服務(wù)器處理。本文將探索HTTP狀態(tài)碼200的具體含義與用途。首先,讓我們了解一下HTTP狀態(tài)碼的分類。狀態(tài)碼被分為五個類別,分別是1xx、2xx、3xx、4xx和5xx。其中,2xx表示成功的響應(yīng)。而200是2xx中最常見的狀態(tài)碼

手機cookie在哪里 手機cookie在哪里 Dec 22, 2023 pm 03:40 PM

手機上的Cookie存儲在移動設(shè)備的瀏覽器應(yīng)用程序中:1、在iOS設(shè)備上,Cookie存儲在Safari瀏覽器的Settings -> Safari -> Advanced -> Website Data中;2、在Android設(shè)備上,Cookie 存儲在Chrome瀏覽器的Settings -> Site settings -> Cookies中等等。

404錯誤的原因和解決方法的深入研究 404錯誤的原因和解決方法的深入研究 Feb 25, 2024 pm 12:21 PM

探究HTTP狀態(tài)碼404的原因和解決途徑引言:在瀏覽網(wǎng)頁的過程中,我們經(jīng)常會遇到HTTP狀態(tài)碼404。這個狀態(tài)碼表示服務(wù)器未能找到請求的資源。在本文中,我們將探究HTTP狀態(tài)碼404的原因,并分享一些解決途徑。一、HTTP狀態(tài)碼404的原因:1.1資源不存在:最常見的原因就是請求的資源在服務(wù)器上不存在。這可能是由于文件被誤刪、命名錯誤、路徑錯誤等原因?qū)е隆?/p>

如何使用C++實現(xiàn)HTTP流傳輸? 如何使用C++實現(xiàn)HTTP流傳輸? May 31, 2024 am 11:06 AM

如何在C++中實現(xiàn)HTTP流傳輸?使用Boost.Asio和asiohttps客戶端庫創(chuàng)建SSL流套接字。連接到服務(wù)器并發(fā)送HTTP請求。接收HTTP響應(yīng)頭并打印它們。接收HTTP響應(yīng)正文并打印它。

如何查找瀏覽器中的cookie 如何查找瀏覽器中的cookie Jan 19, 2024 am 09:46 AM

在日常使用計算機與互聯(lián)網(wǎng)的過程中,我們經(jīng)常會接觸到cookie。cookie是一種小型的文本文件,它保存了我們在網(wǎng)站上的訪問記錄、偏好設(shè)置和其他信息。這些信息可以被網(wǎng)站使用,以便更好地為我們提供服務(wù)。但是有時候,我們需要查找cookie的信息,來找到我們要的內(nèi)容。那么我們該如何在瀏覽器中查找cookie呢?首先,我們需要了解cookie的存在位置。在瀏覽器中

See all articles