我有Node.js網絡應用程序使用Facebook OAuth 2.0註冊/登錄/註銷用戶使用everyauth。檢測用戶是否註銷Facebook
我啓用了對我的Facebook應用程序的脫機訪問的棄用,所以現在我收到在約兩個月後過期的令牌,或者當用戶更改密碼時,或者她刪除應用程序時但是當她退出Facebook的
我的應用程序嵌入一個iframe到多個網站和用於推送更新到用戶的Facebook時間軸。
說我有在現場安裝我的應用程序和網站B.如果我上的一個應用程序的用戶登錄X,他登錄到我的B級應用以及因爲iframe中保留了會議。
問題
如果用戶X註銷Facebook上的,任何人使用同一臺計算機上已安裝我的應用程序的網站是要推動代表X的更新
有一種確定在推送更新之前X是否仍然登錄Facebook的方法?
換句話說,我需要類似於Facebook的JavaScript SDK FB.getLoginStatus,但在服務器端的Node.js。最好的事情將是一個Graph API電話,但我找不到它的合適URL。
不完美的解決方案:
最後,我又可以在註釋中描述@ NitzanTomer的解決方案。我用的JavaScript SDK及其FB.getLoginStatus
方法來檢查我的應用程序的當前用戶仍然是登錄Facebook上。這遠非理想:它適用於我的情況,因爲我在iframe中運行JavaScript代碼,因此相對受到保護,免受same-origin policy的攻擊。
訪問令牌在某些情況下僅會失效,例如刪除應用程序或使用js sdk * FB.logout *方法。爲什麼你關心訪問令牌是否仍然有效?此外,有效的訪問令牌並不意味着「用戶在線」。 – 2012-04-12 09:41:53
@NitzanTomer問題是這樣的:如果用戶使用我的應用程序,然後註銷的FB和離開電腦,那麼,其他用戶進來,記錄在他的Facebook和絆倒在我的應用程序,從點我應用程序中,初始用戶仍然登錄,因此第二個用戶所做的每個操作都會在第一個用戶的Facebook帳戶上發佈。這是正確的,因爲初始用戶沒有從我的應用程序註銷,但爲什麼不抱怨當我嘗試發佈部分註銷的用戶。 – 2012-04-12 14:52:06
我明白了。你在說Facebook裏面的畫布應用嗎? – 2012-04-12 15:14:00