【问题标题】:ASP.net MVC oAuth and Facebook javascript SDKASP.net MVC oAuth 和 Facebook javascript SDK
【发布时间】:2013-12-06 22:15:02
【问题描述】:

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

我使用 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 返回并继续使用他离开时的应用程序。假设他的会话没有过期,他仍然在我的应用程序中作为 John 进行身份验证,但是如果应用程序使用 javascript SDK 进行任何调用或执行任何操作,它就会作为登录的 Facebook 用户,现在是 Jane。假设他们都授权了我的应用程序(因为他们都有我的应用程序的帐户),这会静默发生,并且 John 的操作会发布到 Jane 的 Facebook 帐户。

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

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

谢谢!

【问题讨论】:

    标签: facebook-graph-api oauth


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-22
      相关资源
      最近更新 更多