我非常接近優雅的跨域會話共享解決方案(我將愉快地發佈到CakePHP社區),但我需要最後一次微調來完成它。如何通過Cake的數據庫會話處理在兩個域之間共享會話?
Cake的本地DB支持的會話處理似乎很缺乏,但我討厭在它之上進行破解。它似乎不支持從服務器A(存在於數據庫中)傳遞活動會話標識(sid),然後使用該標識(並且數據完好)在服務器B上啓動新會話。
這裏就是我的了:
我設置安全=低,和我考單服務器登錄等,以確保會議表現正常。檢查。
我順利通過從服務器A到服務器B的SID字符串現在在服務器B ...
我跑CakeSession :: ID($ sid_from_server_a)。
我解析出會話數據庫表中的數據字段,並通過$ this-> Session-> write('blah','value')將它們存入活動會話中。
我重新閱讀了會話以確保它「拿走了」。
但是,當我導航到一個新頁面時,活動sid簡單地回退到完全不同的sid,與其他頁面加載保持一致(即使我刷新從Server A重新建立sid的頁面)。
這是一個cookie問題?
我不確定該做什麼,但繞過了整個Cake範例。看起來,Cake開發者沒有設計會話處理來幫助重建多個域的現有會話。我認爲這是數據庫會話處理程序的主要優點之一。
兩者。每個服務器都位於不同的域中。 –