2011-04-03 47 views
2

我正在使用Python和Django爲Facebook構建應用程序。我正在研究與Facebook身份驗證API集成的不同解決方案。Facebook認證 ​​- 有不同的方法嗎?

到目前爲止,我已經找到了兩個可行的解決方案:

我已經嘗試過的第一個,它似乎很好地工作。我剛剛閱讀了第二篇,它似乎使用Facebook JavaScript SDK。

我的問題是:這兩個庫做不同的身份驗證?我是否正確理解第一個人直接使用OAuth與Facebook進行通信並從那裏獲取身份驗證令牌,而第二個人只是顯示一些JavaScript豐富的中間站點,它們從Web瀏覽器級別請求身份驗證令牌?

一般來說:是否有不同的方式去facebook認證(JavaScript SDK vs其他)?爲什麼JavaScript SDK是推薦的方法?並且是「別的東西」的方法不能生產餅乾,因此效率低下...

回答

3

當你使用後端實現(python,PHP,Perl等)時,你通常必須使用URL重定向圖形API)與Facebook和用戶進行交互。就我個人而言,我認爲這不是一個好的用戶體驗。

使用javascript的SDK,你可以做一切內聯。這意味着用戶永遠不必離開你的頁面授予權限,發佈到牆上,發送請求等。你仍然可以使用後端庫做其他事情。如果您正在進行任何「離線」活動或訂閱實時活動,則需要進行此操作。

最後,您最終獲得相同的授權權限。兩家公司都對Facebook進行類似的調用,以獲得有效的授權會話。所以無論是一個,還是兩者都有效。

+0

對於任何非平凡的應用程序,您可能會最終設置兩者。 – 2011-04-03 23:30:57

+1

@Filip你的意思是兩種方法?爲什麼會這樣 - 你能解釋一下流程的流程嗎?我幾次閱讀FB文檔,我發現他們真的很混亂。他們非常技術性,並沒有真正解釋這一切背後的想法。 – julkiewicz 2011-04-03 23:53:03

+1

@julkiewicz,是的,使用這兩種方法是描述它的更好方法。就像布倫特說的那樣,JS SDK將以您的名義處理用戶,並妥善管理cookies,並在每次請求時將其推送到您的應用程序中。現在,通過cookie中用戶的授權詳細信息,您可以在後端直接與Graph API進行通信,例如向用戶執行查詢(獲取用戶朋友,設置用戶狀態消息等)並堅持數據庫中的任何相關細節。 – 2011-04-04 10:09:56