2016-04-02 30 views
0

我的應用程序是嵌入到其他網站的小部件,但其中最重要的功能之一是使用Facebook登錄。如何讓Facebook從iFrame登錄

但現在我有一個問題。
iframe標籤,而且裏面的iframe,我有:

<a href="http://roomtobid.com/social/login/redirect/facebook" class="btn btn-info btn-lg col-md-12" >Facebook</a> 

,現在當我嘗試點擊和登錄,就什麼都沒有發生。 此外,當我看着瀏覽器控制檯,我得到錯誤:

Refused to display ' https://www.facebook.com/login.php?skip_api_login=1&api_key=17499948800008 …m5xN3sZ3hrPQWQ44FYQPR1yPpsDwLuvoTP9jtZq6%23_%3D_&display=page&locale=sr_RS' in a frame because it set 'X-Frame-Options' to 'DENY'.

我怎樣才能解決我的問題?

此外,我嘗試添加target="_top"<a>標記和該工作,但然後發送我先到Facebook,然後作爲回調原始域不回iFrame。

有什麼辦法解決這個問題嗎?

我看到zopim聊天允許他們的訪問者用Facebook登錄,但他們的Facebook登錄被打開到新的小窗口。

+1

使用彈出窗口而不是iframe。 –

+0

但是,iframe在彈出窗口內... – Andrew

+0

因此,創建一個不帶iframe的彈出窗口。 –

回答

0

but then send me to first to facebook and then as callback to original domain not back to iFrame

當然不是。

它只是重定向到指定爲redirect_uri地址 - 和地址有相匹配的應用程序域,RESP。在應用設置中指定爲有效的OAuth重定向URI。

你能做的唯一的事情,就是把那個iframe的是,爲您的應用程序的回調URL作爲參數頁面的URL - 讓您的應用程序可以重定向回到那裏,Facebook登錄已重定向後回到你的應用程序。

您也可以嘗試,並把它放入會話 - 但如果用戶有多個頁面打開的嵌入您的小部件,加上會話Cookie和第三方的Cookie阻擋容易造成額外的麻煩可能會出現問題。

而這仍然讓您的問題首先得到「父」頁面的URL。父頁面必須首先明確地將該信息傳輸到您的小部件,例如通過GET參數將它們附加到iframe src中的小部件地址。 (可以直接使用URL,也可以使用某種客戶端標識符,然後在數據庫中查找。)

+0

,但與zopim聊天用戶可以很容易地登錄Facebook,當點擊登錄到小部件,然後打開新的Facebook小窗口,當auth結束時,你只是看到你簽署了zopim聊天 – Andrew