この質問は少し長文ですが、答えが多くの人に役立つと確信しています。必要なガイダンスがどこにも見つかりません。
Visual Studio 2012 ですぐに使えるプロジェクト テンプレートを使用して、ASP.net MVC 4 Web アプリケーションを作成しました。これにより、ユーザーがサインアップし、oAuth を使用して Facebook 資格情報で認証できる Web サイトが即座に提供されます。ここまでは順調ですね。
私のアプリケーションは、Facebook Javascript SDK と OpenGraph を使用して、ユーザーに代わってアクションを実行します。それもうまくいっています。
これが私が問題を抱えているシナリオです:-
- ユーザー (John) は、自分の FB プロフィールを使用してサインアップします
- John は、Facebook ログインを使用してアプリケーションにログインします。彼はすでに Facebook にログインしていたので、ログイン資格情報を再入力する必要はありませんでした。
- ジョンはブラウザを開いたままにし、アプリケーションからログアウトしません
- John の妻 (Jane) は新しいタブを開き、Facebook サイトに移動し、John を Facebook からログアウトさせ、彼女自身の Facebook 資格情報を使用してログインします。また、終了後もブラウザーを開いたままにします。
- ジョンは戻ってきて、私のアプリケーションを元の場所から使い続けています。彼のセッションが期限切れになっていないと仮定すると、彼はまだ私のアプリケーションで John として認証されていますが、アプリケーションが呼び出しを行ったり、javascript SDK を使用してアクションを実行したりすると、ログインしている Facebook ユーザー (現在は Jane) として認証されます。両方が私のアプリを承認したと仮定すると (両方とも私のアプリのアカウントを持っているため)、これは暗黙のうちに行われ、John のアクションが Jane の Facebook アカウントに投稿されます。
FB.api を使用するすべてのページで FB.getLoginStatus を呼び出していますが、ユーザーの変更は検出されません。response.authResponse.accessToken を保存して比較してみましたが、これはユーザーが変わっても変わりません。
私のアプリケーションが FB ユーザーが変更されたことを検出し、ログイン ページにリダイレクトするように、Facebook ユーザーの変更を処理する方法について、誰かがガイダンスを提供できますか?
ありがとう!