2012-04-12 71 views
-1

我有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的攻擊。

+0

訪問令牌在某些情況下僅會失效,例如刪除應用程序或使用js sdk * FB.logout *方法。爲什麼你關心訪問令牌是否仍然有效?此外,有效的訪問令牌並不意味着「用戶在線」。 – 2012-04-12 09:41:53

+0

@NitzanTomer問題是這樣的:如果用戶使用我的應用程序,然後註銷的FB和離開電腦,那麼,其他用戶進來,記錄在他的Facebook和絆倒在我的應用程序,從點我應用程序中,初始用戶仍然登錄,因此第二個用戶所做的每個操作都會在第一個用戶的Facebook帳戶上發佈。這是正確的,因爲初始用戶沒有從我的應用程序註銷,但爲什麼不抱怨當我嘗試發佈部分註銷的用戶。 – 2012-04-12 14:52:06

+0

我明白了。你在說Facebook裏面的畫布應用嗎? – 2012-04-12 15:14:00

回答

1

您可以使用FB.getLoginStatus檢查用戶是否連接到Facebook或不: https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

+0

我沒有使用js sdk。是否有類似功能的REST API調用? – 2012-04-12 14:53:23

+0

您可以使用getLoginStatusUrl。兩個來源: https: //developers.facebook.com/docs/reference/php/facebook-getLoginStatusUrl/ http://facebook.stackoverflow.com/questions/7538684/how-do-i-use-facebook-getloginstatusurl – 2012-04-12 16:20:40

+0

我正在構建我的在node.js中的應用程序,所以我沒有獲得PHP SDK :( – 2012-04-12 16:41:56

0

getLoginStaus功能是不是有由amachang Facebook的節點SDK,但你可以使用的是getLoginStatusUrl功能:facebook-node-sdk

的用戶登錄,如果返回值分配給ok_session財產的URL。您無法確定授予您應用程序的權限

相關問題