2010-07-13 29 views
3

我一直在使用單一登錄身份驗證我的Facebook畫布iframe應用程序。 它適用於IE,Firefox,Chrome(全部最新版本)。但在Safari 5上不起作用。Facebook的畫布應用程序驗證單一登錄不適用於Safari 5

我知道safari不允許跨域cookie,這就是它不起作用的原因。 Facebook爲我的應用程序域設置cookie,我可以使用單一登錄機制。

如果我去Safari的首選項,並設置爲允許Cookie總是和不僅爲網站我曾參觀過,整個應用程序工作正常。但是,我不希望我的應用程序的每個Safari用戶都這樣做。

有沒有人得到了這個工作?我嘗試使用其他應用程序,他們似乎工作,但不知道他們是否使用單點登錄方法進行身份驗證,這實際上是由facebook文檔推薦的。你認爲我應該用另一種方法來解決這個問題嗎?

信息:我使用ASP .NET MVC 2

感謝

+1

儘管聽起來很蹩腳的,我們公司只是告訴我們的用戶使用不同的瀏覽器。我是第一個承認這是遠遠不夠理想的人。不幸的是,解決方法非常複雜和加劇。這是一個受歡迎的帖子:http://wcrawford.org/2007/08/29/revisited-facebook-sa​​fari-and-external-iframes-that-need-cookies/。我已經爲MySpace應用程序實現了類似的功能,但它更容易一些,因爲在應用程序加載之前會話ID在畫布中可用。 – zombat 2010-07-13 17:46:56

+0

即使我們通過一些其他機制進行身份驗證,並且不遵循單一登錄。 JavaScript SDK調用將無法繼續,對吧? – cdpnet 2010-07-14 20:57:44

回答

0
+0

這是什麼意思? – Joe 2012-05-22 13:49:51

+0

不記得了,但問題是這樣的。 Safari不會緩存第三方Cookie,因此您必須使其看起來像被重定向的Cookie來自可信來源。您所需要做的就是將應用程序源的URL提供給Facebook API暴露函數中的一個參數,該參數將第三方網站的cookie解析爲fb cookie,因此safari被愚蠢地認爲該網站是受信任的網站,並允許您在不刷新的情況下呈現頁面。 – Shouvik 2012-06-05 12:46:55

+0

備用解決方案是解釋用戶配置safari以存儲第三方cookie。 – Shouvik 2012-06-05 12:48:28

相關問題