PHP 如何操作跨域的COOKIE,不同伺服器上

2021-07-25 16:55:38 字數 1826 閱讀 2287

cookies 定義在 rfc2109 標準。cookies 的大部分操作,由客戶端也就是瀏覽器實現。

cookies 每乙個 cookie 代表著乙個 key-value 鍵值對,以及作用範圍,和生命週期。

cookie 字段定義

作用範圍(scope):path,domain

生命週期(life cycle):也就是cookie的過期時間,expires(gmt,utc) 時間標準

安全作用域(security scope):httponly,secure

跨域訪問涉及 作用範圍(scope), 安全作用域(security scope)

如果 你不使用 js 操作 cookie 的話,可以忽略 安全作用域(security scope)。

以上可能有點 抽象,但是你可以開啟 chrome 按 f12 -> resources -> cookies

可以看到,類似下面這樣

以上都是感念跟廢話。重要看下面。

服務端只是 cookie 的接收者和解析者。由瀏覽器也就是客戶端決定是否要將哪些cookies傳送到到服務端。

而客戶端是參考標準實現rfc2109的話(基本都是這樣)。是根據 cookie 的 path, 和 domain 來傳送。

我們假設,我們現在有兩個 domain.

如果想讓 客戶端將www.php123.com下面的 cookie 也傳送到oauth2.php123.com下面。那麼你需要,在 setcookie() 的時候,將domain設定成為php123.com

php 庫函式 setcookie 的定義

來個實在點的例子吧。

setcookie("foo2", "bar1", time() + 3600) //domain 預設使用,當前domain。

// 沒有拿到 ['foo2' => 'bar2'],那是因為客戶端只需將 domain 為`php123.com`,`www.php123.com`的 cookie 傳送到 www.php123.com 這個域上。所以 cookie.php 只拿到了該拿到的兩個 cookie。

以上**可以很好的解釋 cookie 的工作方式。理解好 cookie 的工作及機制可以實現很多高階功能。比如分布式的 session 共享。

koa開啟cors允許跨域,攜帶cookies

使用koa開發想要開啟 cors 非常簡單,已經有對應的庫 koa cors。const cors require koa cors use cors 只需要兩行,介面就會在返回資料的時候帶上access control allow origin響應頭。預設允許所有請求方式跨域即access con...

mysql 跨域訪問 php如何解決跨域問題

什麼是跨域?跨域,指的是瀏覽器不能執行其他 的指令碼。它是由瀏覽器的同源策略造成的,是瀏覽器施加的安全限制。所謂同源是指,網域名稱,協議,埠均相同。1 允許所有網域名稱訪問header access control allow origin 2 允許單個網域名稱訪問header access con...

php跨域簡述

一 通過設定access control allow origin來實現跨域。例如 客戶端的網域名稱是client.runoob.com,而請求的網域名稱是server.runoob.com。如果直接使用ajax訪問,會有以下錯誤 1 允許單個網域名稱訪問 指定某網域名稱 跨域訪問,則只需在檔案頭部...