2012-04-12 12 views
-1

everyauthを使用してログイン/ログアウトしたユーザを登録するには、OAuth 2.0を使用するNode.jsウェブアプリケーションがあります。ユーザがFacebookからログアウトしているかどうかを検出する

Facebookアプリケーションでのオフラインアクセスの廃止を有効にしたので、今から〜2か月後に有効期限が切れるトークンを受け取ったり、ユーザーがパスワードを変更したり、アプリケーションを削除したりすると、Facebook

私のアプリケーションは、複数のウェブサイトにiframeに埋め込まれ、ユーザーのFacebookタイムラインに更新をプッシュするために使用されます。

私は自分のアプリケーションをサイトAとサイトBにインストールしていると言います。ユーザーXが自分のアプリケーションをAにログインすると、iframeはセッションを保存するため、Bのアプリケーションにもログインします。

問題

するFacebookのうち、ユーザXのログは、私のアプリケーションがインストールされているサイトで、同じコンピュータを使用して他の誰がX.に代わって更新情報をプッシュしようとしている場合は

がありますアップデートを押す前にXがまだFacebookにログインしているかどうかを判断する方法?言い換えれば

、私はNode.jsのでのFacebookのJavaScript SDK FB.getLoginStatusに似ていますが、サーバー側で何かが必要。最高のものはGraph APIコールですが、適切なURLが見つかりません。

不完全な解決

最後に、私はコメントで説明する@ NitzanTomerのソリューションと一緒に行きました。 JavaScript SDKとそのFB.getLoginStatusメソッドを使用して、自分のアプリケーションの現在のユーザーがまだFacebookにログインしているかどうかを確認しました。これは理想とはかけ離れています。私はiframeでJavaScriptコードを実行しているため、私の場合には動作します。したがって、same-origin policyによる攻撃から比較的保護されています。

+0

アクセストークンは、アプリケーションの削除やjs sdk * FB.logout *メソッドの使用などの特定の場合にのみ無効になります。アクセストークンがまだ有効かどうかはどうして気になるのですか?また、有効なアクセストークンは、「ユーザーはオンラインです」という意味ではありません。 –

+0

@NitzanTomer問題はこれは次のとおりです。ユーザが自分のアプリを使用してからfbからログアウトしてコンピュータを離れると、別のユーザが来て、自分のFacebookにログインし、自分のアプリを遭遇します。最初のユーザーはまだログインしているので、2番目のユーザーが行うすべての操作は、最初のユーザーのFacebookアカウントで公開されます。初期ユーザーが私のアプリからログアウトしなかったので正しいですが、ログアウトしたユーザーの一部に公開しようとしたときにFacebookが不平を言っていないのはなぜですか? –

+0

私は参照してください。あなたはFacebookの中のキャンバスアプリについて話していますか?それは、人々は[OK]を、あなたが助けを得るために、より多くのあなたの状況について詳しく説明する必要があるとしている –

答えて

1

あなたは、ユーザーがフェイスブックに接続されているかどうかをチェックするためにFB.getLoginStatusを使用することができます。 https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

+0

私はjs sdkを使用していません似たような機能を備えたREST APIコールがありますか –

+0

getLoginStatusUrlを使用できます2つのソース: https: //developers.facebook.com/docs/reference/php/facebook-getLoginStatusUrl/ http://facebook.stackoverflow.com/questions/7538684/how-do-i-use-facebook-getloginstatusurl –

+0

私は自分を構築していますNode.jsの中アプリので、私はPHPのSDKへのアクセスを持っていない:( –

0

getLoginStaus機能はamachangによってFacebookのノード-SDKにはありませんが、何あなたが使用できることはgetLoginStatusUrlです関数:facebook-node-sdk

返される値がok_sessionプロパティに割り当てられたURLである場合、ユーザーがログインします。

関連する問題