是的,這是因爲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,即強迫用戶使用帆布應用程式。