0

这个问题有点啰嗦,但我相信答案会对很多人有所帮助。我只是无法在任何地方找到我需要的指导。

我使用 Visual Studio 2012 中的开箱即用项目模板创建了一个 ASP.net MVC 4 Web 应用程序。它立即为您提供了一个网站,该网站允许用户使用 oAuth 使用其 Facebook 凭据进行注册和身份验证。到目前为止,一切都很好。

我的应用程序使用 Facebook Javascript SDK 和 OpenGraph 代表用户执行操作。这也很好。

这是我遇到问题的场景:-

  1. 用户 (John) 使用他的 FB 个人资料注册
  2. John 使用他的 Facebook 登录名登录到我的应用程序。他已经登录了 Facebook,因此无需重新输入登录凭据。
  3. John 让浏览器保持打开状态并且没有退出我的应用程序
  4. John 的妻子 (Jane) 打开一个新选项卡,访问 Facebook 站点,将 John 从 Facebook 注销并使用她自己的 Facebook 凭据登录。完成后,她还会打开浏览器。
  5. 约翰回来并继续使用他离开时的应用程序。假设他的会话没有过期,他仍然在我的应用程序中作为 John 进行身份验证,但是如果应用程序使用 javascript SDK 进行任何调用或执行任何操作,它就会作为登录的 Facebook 用户,现在是 Jane。假设他们都授权了我的应用程序(因为他们都有我的应用程序的帐户),这会默默地发生,并且 John 的操作会发布到 Jane 的 Facebook 帐户。

我在使用 FB.api 的每个页面上都调用 FB.getLoginStatus ,但这并没有检测到用户的变化。我已经尝试存储和比较 response.authResponse.accessToken 但这在用户更改时不会改变。

谁能提供一些有关如何处理 Facebook 用户更改的指导,以便我的应用程序检测到 FB 用户已更改并将其重定向到登录页面?

谢谢!

4

1 回答 1

0

我通过在登录时存储 FB 用户 ID 并将其与每次页面加载时 FB.getLoginStatus 的响应对象中的用户 ID 进行比较来处理此问题。如果它们不匹配,我会强制注销。

于 2013-12-06T14:15:02.830 回答