2013-05-02 37 views
1

我想知道是否有辦法告訴TYPO3在不同域之間共享會話/ cookie?TYPO3:如何在域之間共享會話/ cookie(每種語言一個)?

我們在多語言/多域網站上編寫了一個Extbase擴展。 我們在用戶會話中存儲搜索表單中的搜索詞。如果用戶切換頁面語言,他應該獲得與以前相同的結果 - 無需重新填寫搜索表單。

一種方法是告訴瀏覽器同時存儲多個cookie - 每個域/語言一個。 TYPO3/Extbase如何實現這一點?

回答

1

默認情況下,沒有辦法爲不同的域設置cookie - 不帶或不帶TYPO3。這是在每個瀏覽器中實施的安全措施(或者當您訪問我的網站時,您是否希望我從yourbank.com設置/讀取您的Cookie?;-))

您必須創建一些幫助程序腳本爲你。一種方法可以是:

  • example.com加載
  • 此頁包含有GET參數將正在被會話ID上example.org的iframe PHP腳本(或TYPO3網站,例如用EID)
  • 從example.org加載的腳本讀取GET參數,並使用該會話標識(或任何您想傳輸的參數)設置一個cookie。
  • 之後將example.org瀏覽

我從來沒有嘗試過這種當餅乾也可以,但我敢肯定它會用PHP工作。也許甚至有可能使用純JavaScript,但我不太確定。在任何情況下,請考慮使用解釋腳本得到的安全漏洞。懷疑簽署參數(或需要令牌)!

+0

好點:這是一個安全問題 - 無法爲不同的域添加兩個Cookie! – rantanplan 2013-05-03 13:14:47

+0

我有一個多域網站(每個域的語言)felogins此問題。 @StephenKing,你的答案是關於*設置* cookies。這很清楚。但是告訴TYPO3(或任何其他應用程序)從另一個域接受* cookie是什麼情況?就像告訴TYPO3接受來自domain-a.com的cookies和用於登錄的domain-b.com一樣。我正在查看'[SYS] [cookieDomain]' - 但還沒有運氣。 – Urs 2014-09-05 14:27:10

+1

這是不可能的設計。您不能要求用戶的Cookie用於'facebook.com'。這是當時發明餅乾時的設計決定(我認爲這是好的;-)) – StephenKing 2014-09-05 14:33:29

相關問題