1

我想知道什麼是正確的技術來簡化登錄到我的網站通過Facebook。如何執行即時Facebook登錄以鏈接到登錄Facebook登錄網站

目前,我有一個網站與Facebook登錄按鈕集成。現在,它是一個獨立的網站,而不是「Facebook應用程序」(在畫布中運行)。雖然這不是我的決定,但如果有問題,這可能會長期發生變化。

身份驗證工作的方式:使用onlogin()事件將「fb-login-button」重定向到我的應用程序URL;服務器端使用cookie來檢索「訪問令牌」並執行進一步的Graph API工作。業務邏輯駐留在服務器端。

當前的業務需求如下: 假設有人張貼一個鏈接到我的網站,什麼地方在Facebook中,例如在我們的網站社區頁面: http://www.mysitedomain.com/offer1

Facebook的登錄用戶點擊鏈接 - 在他的Facebook身份驗證通過後,應該到達目標頁面,結果應該爲該用戶個性化。

如果一個Facebook用戶已經與我的網站有一個活動的會話 - 微不足道。

假設用戶過去批准了我的網站(app),但沒有活動會話 - 這裏我正在尋找最佳做法來執行登錄

另外,我希望提示如何以最有效的方式處理應用授權(即顯示Facebook授權對話框)。

感謝您的任何提示。

+0

嗨馬克斯 - 此頁面是否回答您的問題:https://developers.facebook.com/docs/howtos/login/getting-started/#step3 –

+0

謝謝。 FB.getLoginStatus()讓我知道我的應用是否被授權 - 在JS代碼中!目前,我的網站中的所有網址都沒有有效的會話被訪問 - 被重定向到「登錄頁面」。我應該在該「登錄頁面」中使用FB.getLoginStatus(),如果連接 - 重定向到「Facebook登錄」URL以驗證Cookie?什麼都可以在不重新加載頁面的情況下完成? (根據用戶體驗)。此外,還可以通過點擊鏈接來改善第一次使用者的體驗嗎?謝謝 – Max

+0

我認爲@thomasbabuj在這裏有一個更完整的答案,所以我要編輯我的鏈接到他的答案。 –

回答

2

結賬FB Login ArchitectureFB.getLoginStatus。基於FB文檔,如果您使用javascript sdk,它只會在同一頁面上觸發一個Popup,一旦通過驗證,它就會返回到同一頁面。因此,一旦確認登錄狀態,您就可以從圖形api獲取用戶信息,並通過您的頁面上的AJAX進行更新。您也可以結帳這server side login。希望這可以幫助。

+0

謝謝。我瞭解JavaScript SDK可以爲用戶進行身份驗證,從而實現服務器重定向(或基於AJAX的服務器訪問)。但是,首次使用者必須點擊「登錄Facebook」按鈕。服務器端登錄也允許通過「單擊」來加載頁面(在這種情況下,sijnce https://www.facebook.com/dialog/oauth?將執行重定向),但它會顯示Facebook授權表單爲第一次用戶。我的理解是否正確?謝謝。 – Max

+0

嗨馬克斯,是的第一次,即使他們已經登錄Facebook的用戶,他們仍然需要授權您的網站(默認情況下,您的Facebook共享公共信息,以獲得更多的信息,你需要獲得用戶的相關許可)。 – thomasbabuj