2014-05-08 15 views
9

我有一個移動應用程序與後端服務器,我想了解什麼是最佳做法使用Facebook登錄(創建一個帳戶),然後保持整個系統同步。什麼是正確的方式做Facebook的移動應用程序登錄(與node.js/passport.js服務器)

以下是我目前瞭解的內容: - 移動應用程序可以在設備上進行登錄並獲取access_token - 可以將訪問令牌傳輸到服務器。我使用passport-facebook-token掛鉤了一些api.myhost.com/auth/facebook路由,做了一個概念驗證,看起來我可以驗證用戶並檢索他的FB數據。因此,我可以將他與我的數據庫中的現有用戶相匹配或創建新記錄。

我不明白: 1)我必須使用https傳輸FB令牌到我的服務器嗎?

2)我應該爲我的其他請求進行身份驗證。我不認爲去FB的每一個請求是一種選擇。想到的一個選擇是生成另一個(我自己的)訪問令牌並作爲FB認證的結果返回。

最簡單的方法是使用passport-facebook-token會話(以便cookie會話ID可以序列化並反序列化爲用戶ID)。但這意味着我需要爲會話保留一些KV存儲空間。

另一種方式是爲該用戶生成我自己的隨機令牌,並在成功登錄時將其與用戶ID一起返回,並將其存儲在用戶記錄中,並讓來自客戶端的每個API調用提供此ID /令牌對並重新驗證它們每次手動無需依靠護照。或者,也許依靠護照本地策略?

哪一個更好?每個人的優點/缺點是什麼? 2)如果我打算將FB標記用於發佈到FB並進行圖形分析(朋友等),我打算將該標記存儲在服務器上。我多久需要刷新一次?每當應用程序啓動並刷新客戶端上的令牌時,我是否應該使用新的FB令牌對服務器重新進行身份驗證?通過服務器到服務器的調用刷新用戶FB令牌怎麼樣?如果我想保持對用戶的FB數據的訪問,但是用戶是否停止使用我的或者很少使用它,我是否應該這樣做?

是否有任何地方的工作方案的食譜,運作良好?

謝謝!

+0

你有沒有在這裏找到有用的東西? – SJoshi

回答

0

Facebook的令牌安全

,你有你的移動應用客戶端上創建令牌是你已經在驗證給出的ID到您的Facebook應用程序。在通過Internet或任何其他易失性信息通信令牌時,我總是使用HTTPS。

Facebook的令牌到期&刷新

當你在你的移動應用程序的認證,你會經常得到令牌的到期時間與令牌的響應。令牌到期在Facebook API中解釋。

使用Facebook SDK的原生移動應用將獲得長壽命的訪問令牌,約60天。當使用您的應用的人向Facebook服務器發送請求時,這些令牌每天將刷新一次。如果沒有請求,令牌將在大約60天后過期,並且該人員將不得不再次通過登錄流程來獲得新的令牌。

關於刷新令牌:

即使是長期訪問令牌最終會失效。在任何時候,您都可以通過將用戶發送回您的網絡應用使用的登錄流來生成新的長時間令牌 - 請注意,該用戶實際上不需要再次登錄,他們已經授權您的應用,因此他們會立即使用刷新的令牌從登錄流程重定向回您的應用程序 - 此人對此的顯示方式將根據您使用的登錄流程類型而有所不同,例如,如果您使用的是JavaScript SDK,則會發生在在後臺,如果您使用的是服務器端流程,瀏覽器將會快速重定向到登錄對話框,然後自動立即再次返回到您的應用程序。

相關問題