2013-10-11 59 views
0

這個問題有點冗長,但我相信答案會幫助很多人。我無法在任何地方找到我需要的指導。ASP.net MVC oAuth和Facebook的JavaScript SDK

我已經使用Visual Studio 2012中的開箱即用項目模板創建了一個ASP.net MVC 4 Web應用程序。它立即爲您提供一個網站,允許用戶使用他們的Facebook憑證進行註冊和驗證的OAuth。到現在爲止還挺好。

我的應用程序使用Facebook Javascript SDK和OpenGraph代表用戶執行操作。這也很好。

這裏是我有問題的情景: -

  1. 用戶(約翰)的標誌,使用了他的FB輪廓
  2. 約翰登錄到使用自己的Facebook登錄我的應用程序。他已經登錄到Facebook,所以他不需要重新輸入他的登錄憑證。
  3. John離開瀏覽器並且不會註銷我的應用程序
  4. John的妻子(Jane)打開一個新標籤頁,進入Facebook網站,將John登出Facebook並使用自己的Facebook憑證登錄。她完成後也會將瀏覽器打開。
  5. John從他離開的地方返回並繼續使用我的應用程序。假設他的會話沒有過期,他仍然在我的應用程序中作爲John進行身份驗證,但是如果應用程序使用JavaScript SDK進行任何調用或執行任何操作,則它將作爲已登錄的Facebook用戶(現在是簡)。假設他們已經授權我的應用程序(因爲他們都有我的應用程序的帳戶),這會悄悄地發生,約翰的行爲發佈到簡的Facebook帳戶。

我在每個使用FB.api但沒有檢測到用戶變化的頁面上調用FB.getLoginStatus。我試過存儲和比較response.authResponse.accessToken,但是當用戶改變時這不會改變。

任何人都可以提供一些關於如何處理Facebook用戶更改的指導,以便我的應用程序檢測到FB用戶已更改並將其重定向到登錄頁面?

謝謝!

回答

0

我通過在登錄時存儲FB userid並將其與每個頁面加載的FB.getLoginStatus的響應對象中的userid進行比較來處理此問題。如果它們不匹配,我強制註銷。