我點擊連接到facebook,彈出窗口將我從屬於mydomain的iframe直接帶到facebook網域。但成功的身份驗證後,它如何自動關閉並獲取事件處理?Facebook連接彈出窗口是如何設計的?我
換句話說,FB.login()後面發生了什麼?
我點擊連接到facebook,彈出窗口將我從屬於mydomain的iframe直接帶到facebook網域。但成功的身份驗證後,它如何自動關閉並獲取事件處理?Facebook連接彈出窗口是如何設計的?我
換句話說,FB.login()後面發生了什麼?
編輯: 它使用HTML5支持的postMessage來支持跨窗口跨域通信!
一旦收到成功的認證密鑰,它將關閉對話窗口。就像OAuth在獲得成功驗證的代碼時一樣工作
我還沒有研究過這個,但這是我的猜測:我認爲如果驗證成功,Facebook會在客戶機上設置簽名cookie。 Facebook JS庫在它設置並關閉窗口時識別這個cookie。
好的..但父窗口如何得到通知?屬於不同域的父窗口和子窗口無法傳遞儀式? – 2011-01-23 16:09:24
這裏完全猜測,但FB可以很容易地在父窗口上有一個iframe,該iframe將存在於facebook.com域中,並且將包含打開彈出窗口的腳本。彈出頁面只會以不添加窗口歷史記錄中的項目的方式導航,並且在調用window.close()之前會調用像opener.notifyStuff(...)之類的東西。至少我是這麼做的。 – Metal 2011-01-23 16:42:45