我有一個Rails應用程序,它作爲iframe在Fabebook內部運行。我使用Koala gem進行FB通信(也是某些部件的js SDK)和Devise作爲身份驗證的基礎。Facebook應用程序(iframes)和第三方cookie
一段時間以來,我發現應用程序在iframe中運行的問題存在一些問題。所以第三方cookies不能設置。對於IE我使用P3P標題,以某種方式緩解了這個問題。
但是整件事情非常混亂。我在雪豹。
例如:
的Safari 5.1.1我已經設置 「阻止來自第三方和廣告商的cookie。」 該應用程序工作正常,它可以使用沒有問題。
使用Chrome 5.0.874(最近更新)選中「阻止第三方Cookie被設置」選項,因此我的應用程序設置的兩個主要Cookie(應用程序cookie和fbs_xxxx cookie)無法設置,因此應用程序不起作用,因爲用戶需要始終進行身份驗證。
Opera 11.52沒有提及第三方cookies,並且瀏覽器設置爲「僅接受來自我訪問的網站的cookie」。我的應用程序適用於該設置。
隨着Firefox 7.0.1我的應用程序的工作原理,但我找不到任何設置,處理Cookie。只是要刪除它們。
所以顯然我的問題是與Chrome,但相同的設置與Safari的工作。所以我很困惑。
是否要求用戶允許第三方cookie解決此問題的唯一解決方案?
謝謝。
UPDATE在我的當前工作液
我做了一些額外的研究和測試。我曾嘗試使用Rails替代會話存儲方法。默認情況下,它們存儲在一個cookie中,但可以將會話數據存儲在內存,數據庫等中,但這還不夠,因爲它仍然使用一個cookie來指向您選擇的替代存儲。
最後,我設置了一些信息,使我可以找到當前登錄用戶的身份,獲取用戶並使用Devises sign_in方法手動登錄該用戶。我不太喜歡它,但現在我可以阻止第三方Cookie並仍然有效。我稍後將進行更改,而不是在那裏獲得真正的信息,我將從中獲取用戶(之前已設置)的密鑰,然後才能訪問該memcached服務器。
謝謝。
能否請您以實例闡明這一點,謝謝。 –