1

所以,我設置的身份驗證系統使用左塞爾和休息 - 社會 - 身份驗證(https://github.com/st4lk/django-rest-social-auth如何在不需要客戶端使用彈出窗口的情況下使用django rest框架進行FaceBook登錄?

,但現在看來,這需要在客戶端打開一個彈出或模式與Facebook登錄,而我們前端開發說是一個壞主意,我們應該使用服務器端重定向。

所以 - 假設這是明智的 - 我怎麼去服務器端設置跳過客戶端的Facebook模式?如果能夠讓事情變得更簡單,我很樂意將當前的社交授權庫換成其他東西。

FWIW - 我們正在使用的前端棱角分明,但在使用JavaScript SDK未來

+1

有服務器端登錄流程,通過在現有選項卡/窗口內重定向用戶工作 - https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow - 不管django是否已經實現,或者如果你需要自己做一些編碼,我不知道。 – CBroe

回答

3

客戶端授權還計劃在其他前端是最簡單的一個,它是絕對安全的。這對用戶來說也是最好的選擇,因爲你不需要重定向到登錄頁面。不知道爲什麼你的前端開發者說這是一個壞主意,這實際上是最好的和推薦的方式。在這種情況下彈出窗口是可以的,因爲它是由用戶發起的。這裏有一個例子:http://www.devils-heaven.com/facebook-javascript-sdk-login/

授權後,您可以發送訪問令牌到服務器,以防您需要它。確保你閱讀了這個,並使用appsecret_proofhttps://developers.facebook.com/docs/graph-api/securing-requests

例如,你可以很容易地把代碼放在一個Angular服務中。

+0

那麼,他的原話是: 「我們不能使用FB SDK JS 因爲情態動詞可以阻止」 – Chozabu

+1

that's我的想法 - 它不會在這種情況下無所謂,至少不是如果你這樣做是正確的。我在瀏覽器中使用了廣告攔截器,並且它們不會阻止fb登錄彈出窗口>,因爲它是用戶啓動的。只要確保按照我的答案中的示例進行操作,只需在用戶交互上直接使用FB.login即可。 – luschn

+1

事實上,我爲此使用了多年的js sdk,並且從未遇到登錄彈出窗口的問題。而且,基本代碼在所有這些年中都沒有改變,主要與幾年前相同 - 而php sdk改變了很多。 :) – luschn

相關問題