2012-09-03 70 views
1

說明FB回報的OAuth訪問令牌,但沒有到期值

我與OAuth的服務有問題「隨機」不返回「過期」的價值。

該應用程序使用簡單WebRequests和重定向(無SDK)的服務器端身份驗證,並完全符合documentation

我們將「expires」值存儲在我們自己的數據庫中,我們使用這些信息提示用戶在accesstoken過期(或即將過期)時重新進行身份驗證。

我們不以任何方式自動化或批量更新accesstokens。 Accesstokens只通過服務器端身份驗證刷新,即該過程始終由用戶啓動。

現在,我們已經注意到,當我們嘗試刷新一些(但不是全部),這些過期的令牌是這樣的,在OAuth的服務確實,即使用戶再次確認,他確實回報的到期步驟4的值希望允許我們訪問他的Facebook帳戶。 accesstoken返回就好了。

其他標記不會遇到此問題。該問題似乎是隨機發生的,但可能與某些用戶授予manage_pages權限有關,而其他用戶則不會。然而,這是猜測,我目前無法測試這一點。

該問題可以由用戶手動進入他的應用設置並從他們刪除我們的應用程序「修復」。當接下來執行服務器端身份驗證時,OAuth響應包含預期的expires值,隨後的任何調用都會授權該用戶。

問題

  • 什麼是或可能是這個(無證)行爲的原因是什麼?
  • 我們如何解決受影響的令牌?
  • 我們如何防止這種情況發生?

謝謝你在前進,

+0

https://developers.facebook.com/bugs/339375252810525,https://developers.facebook.com/bugs/251154038319134 – CBroe

+0

謝謝CBroe,現在至少我知道這不是我們做錯了。 (而且FB並不在乎這個bug) –

+0

哇!大約7個月後我剛剛遇到了這個bug,這仍然是一個問題。 :-(:-(:-(現在我得重構我的應用程序,猜測如果它不存在,60天就會過期。Bah humbug。如果你請求manage_pages權限,你可以獲得無限制的有效性用戶的access_token可以嗎?這將是sweeeeet ... :-) – chmac

回答

0

顯然這是一個已知的bug。 (請參閱CBroe的評論)