2013-06-28 46 views
0

所以我正在整合Facebook的網站上工作,並且遇到了一個奇怪的問題。事情是,訪問令牌需要像隨時可能變爲無效一樣進行處理。例如,如果用戶註銷或更改其密碼,他們會在更多請求中獲得OAuthException,對嗎?Facebook訪問令牌在註銷後保持有效?

然而,當我退出,似乎訪問令牌我的應用程序使用仍然有效,因爲用戶需要從我們的網站註銷,他們可以與其他Facebook帳戶登錄之前,這提出了一個問題。

在這裏任何人都遇到同樣的問題,即使用戶退出的facebook在訪問令牌仍然有效?我試圖找到這個問題的創造性的解決方案,所以任何幫助,將不勝感激。

謝謝。

回答

0

是的,這是因爲Facebook整合到一個單獨的網站假定您不希望被註銷您的單獨的網站的用戶,當他們註銷了Facebook網站。

基本上有2用戶access_tokens',其可以被使用;代碼和signed_request - signed_request是一旦用戶註銷後,Facebook就會失效,代碼在一段時間內保持有效。

只有代碼從與Facebook的要求,這意味着在的access_token時間過後纔會失效一個登錄返回。

signed_request在Facebook本身調用應用程序(即canvass應用程序)時發送,此標記優先於'code'參數,並且這將覆蓋'code'access_token。

因此,我正在構建的應用程序既有一個微型網站,與Facebook分開,還有一個Facebook應用程序,它們都指向同一個主機,因此如果用戶通過單獨的網站登錄,則會註銷Facebook ,他們在我單獨站點上的會話將保持活動狀態,所以如果另一個用戶在同一臺​​計算機上登錄Facebook並訪問單獨的站點,他們將看到以前的用戶信息,因爲他們沒有將自己登錄到我的站點外,但是如果他們要從facebook內部獲取canvass應用程序,Facebook會發送一個'signed_request'參數來覆蓋單獨的網站會話並記錄相應的用戶,這也意味着他們的會話在註銷Facebook時會失效。

只有2解決方案,我看到:

1)您可以在每一頁的末尾存儲的會話無效,這會再強迫你的網站重定向到Facebook登錄每一個頁面請求,這將如果用戶已經登錄,則直接重定向,但需要犧牲某些性能。

2)僅使用網站通過Facebook,即強迫用戶使用帆布應用程式。