这个问题有点啰嗦,但我相信答案会对很多人有所帮助。我只是无法在任何地方找到我需要的指导。
我使用 Visual Studio 2012 中的开箱即用项目模板创建了一个 ASP.net MVC 4 Web 应用程序。它立即为您提供了一个网站,该网站允许用户使用 oAuth 使用其 Facebook 凭据进行注册和身份验证。到目前为止,一切都很好。
我的应用程序使用 Facebook Javascript SDK 和 OpenGraph 代表用户执行操作。这也很好。
这是我遇到问题的场景:-
- 用户 (John) 使用他的 FB 个人资料注册
- John 使用他的 Facebook 登录名登录到我的应用程序。他已经登录了 Facebook,因此无需重新输入登录凭据。
- John 让浏览器保持打开状态并且没有退出我的应用程序
- John 的妻子 (Jane) 打开一个新选项卡,访问 Facebook 站点,将 John 从 Facebook 注销并使用她自己的 Facebook 凭据登录。完成后,她还会打开浏览器。
- 约翰回来并继续使用他离开时的应用程序。假设他的会话没有过期,他仍然在我的应用程序中作为 John 进行身份验证,但是如果应用程序使用 javascript SDK 进行任何调用或执行任何操作,它就会作为登录的 Facebook 用户,现在是 Jane。假设他们都授权了我的应用程序(因为他们都有我的应用程序的帐户),这会默默地发生,并且 John 的操作会发布到 Jane 的 Facebook 帐户。
我在使用 FB.api 的每个页面上都调用 FB.getLoginStatus ,但这并没有检测到用户的变化。我已经尝试存储和比较 response.authResponse.accessToken 但这在用户更改时不会改变。
谁能提供一些有关如何处理 Facebook 用户更改的指导,以便我的应用程序检测到 FB 用户已更改并将其重定向到登录页面?
谢谢!