2013-07-24 27 views
0

我正在尋找定期輪詢Facebook的「正確」方式,以確保用戶的oauth令牌仍然有效。我使用Facebook來驗證用戶的帳戶到我自己的應用程序。他們使用我的應用程序並不一定會導致任何Facebook圖形調用,但我仍然需要知道oauth標記是否因登錄到我的應用程序而失效,例如。通過Facebook密碼更改。定期查詢Facebook for oauth失效

Facebook有一個頁面說明如何處理失效:https://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/ 他們還有一個/我可以在任何時間點擊URL來查看該令牌當前是否有效。 (例如,根據Check if Ouath token is invalid) 但是,在用戶的初始登錄之後進行輪詢的正確模式和頻率是什麼?

我正在考慮類似的解決方案:

BAD:檢查每一個請求,我的應用程序OAuth令牌的有效性。 (過重,減緩每一個請求,可能會讓Facebook的瘋狂)

更好?:檢查OAuth憑證的有效性,當用戶對我的應用程序IF OAuth令牌還沒有被更多的檢查比X的請求分鐘

最後的解決方案感覺是對的,但是我找不到任何其他人提及這一點。

這是輪詢oauth有效性的最佳實踐嗎?任何人都可以指向指向這個用例的文檔,或者確認你自己已經解決了這個問題?

回答

0

我實際上更喜歡使用你先建議的方法。您無需輪詢API以驗證令牌的完整性 - 如果您嘗試使用過期令牌執行API調用,Facebook將返回相應的錯誤消息。只需添加故障保護功能即可檢測到您正在進行的任何呼叫。

+0

要錘擊家爲什麼這不起作用在我的情況下,想象我的應用*從不*調用Facebook圖形API。 Facebook僅被用作替代用戶註冊的另一個賬戶來使用我的應用程序。我的應用程序可能需要幾個小時甚至幾天才能使用,而不需要另外的登錄,所以我需要更頻繁地檢查oauth標記是否仍然有效。 – Squirrel7

+0

爲什麼?如果你沒有進行API調用,爲什麼它如果令牌已過期會影響? – Igy

+0

因爲Facebook正在用作我的應用程序的身份驗證機制。如果有人不再使用我的應用進行身份驗證,我需要阻止他們繼續使用它。沒有什麼不同,如果你改變你的Facebook密碼,因爲你離開了它在酒店登錄,Facebook停止讓該酒店的電腦繼續污染你的Facebook帳戶。 – Squirrel7