2017-10-10 41 views
0

我開發一個網站,具有連接多個社交賬戶的選項,如與Facebook等 點擊連接按鈕連接打開了Facebook(或任何社交網站)在登錄彈出窗口。 我希望我的父窗口在登錄完成時得到通知。通知父窗口的登錄完整的子窗口後,在瀏覽器中

我使用的服務器的nod​​e.js和使用Facebook的OAuth。

一個選擇,我不得不是建立在父窗口的套接字連接到服務器..給它在本地存儲一個唯一的ID和店鋪ID。在成功登錄並由我的服務器重定向後的子窗口中。我登陸/重定向到不帶參數的子窗口。獲取本地存儲唯一標識並將其發送到服務器和服務器,然後將事件發送到父窗口套接字連接數據/通知。

,但我覺得使用本地存儲並不是一個好辦法。所以我正在嘗試找到其他方法來實現這個目標,並且我對它充滿信心。

你們可以在相同的共享上應該如何實現,有沒有更好的方式來實現這一目標你的看法。

+0

兩點建議:閱讀:https://stackoverflow.com/help/how-to-ask和使用測試,很好用的OAuth庫。 – jwilleke

回答

1

您還沒有提供任何代碼。所以假設你的當前設置是相當困難的。 我假設你正在用window.open()方法打開彈出窗口。

可以爲社會登錄點擊做這樣的事情上按鈕:

window.loginCallback = function(obj) { 
    // do something 
}; 
window.open('url/to/social/login'); 
在彈出

然後,從成功登錄重定向後,重定向到在彈出的其他一些網頁,其中將有這樣的腳本:

window.opener.loginCallback(dataToSend); 
window.close(); 

如果你是和的NodeJS expressjs,你可以通過任何模板系統設置dataToSend

希望它有幫助。

注:代碼沒有進行測試,可能包含錯誤。

參見:https://developer.mozilla.org/en-US/docs/Web/API/Window/opener

+0

感謝您的回答...正是我需要的......從來沒有知道該方法window.opener存在。 –