确定用户是否仍未从其Facebook帐户中删除应用程序

时间:2014-01-04 15:41:34

标签: php facebook facebook-graph-api authentication

我设法让用户通过Facebook登录我的网站。它的工作原理如下:

  • 用户访问我的网站并选择使用Facebook登录
  • 用户访问Facebook以授权我的应用
  • 如果该应用已获得授权,则该用户将返回我的网站并注册到我的数据库
  • 用户仍然通过我的网站设置的Cookie登录

我从Facebook存储这些信息:用户名,电子邮件和ID。

如果出现以下情况:

  • 用户从Facebook注销并仍然登录我的网站?我仍然拥有允许用户保持在线的cookie和会话,所以即使用户没有登录Facebook,我的用户仍然可以从我的网站中受益。这种行为是正常还是应该避免?
  • 用户是否从其授权的应用列表中删除了我的 Facebook App ?用户现在是我的数据库的一部分,但用户从他的帐户中删除了该应用程序。我应该怎么处理这个?如何检查App->网站连接是否仍然对该用户有效?如果用户从他的帐户中删除了该应用,我是否也应将其从我的数据库中删除?如果是,再次,如何进行检查?

还有很多其他令我困惑的事情,我想我应该在以后再提出另一个问题。

我正在使用Facebook PHP SDK完成所有这些任务。

P.S:我只使用Facebook作为我网站的身份验证方法,仅此而已。

2 个答案:

答案 0 :(得分:0)

如果应用需要Facebook,那么您需要测试您提到的案例并生成相应的错误消息。除此之外,您只需为用户提供明显的清理方法,例如正常工作的卸载命令。

答案 1 :(得分:0)

要回答您的问题,我们为facebook连接做了一些事情

  • 如果用户选择使用FB connect创建帐户,我们会抓住 详细信息,如名字,姓氏,电子邮件,fb_userid,然后保存到 数据库。

  • 如果同一个用户来到用户必须点击FB登录按钮,我们检查我们的数据库是否返回fb_userid 我们的数据库并处理登录并授予用户页面访问权限。

  • 理想情况下,我们永远不会将fb_userid存储在cookie中,下次如果用户只是执行自动登录。

  • 现在如果用户从FB中删除应用程序,因为我们不允许通过cookie保存的数据自动登录,用户必须单击登录按钮然后重新授权应用程序。由于fb_userid已经在我们的数据库中,我们在授予权限后检测用户并让他们登录。

    • 在我们的案例中,我们有一个优势,即我们的网络应用程序需要按月订阅,因此用户必须为此付费。所以通常想要继续他们的人来到我们的网站并取消帐户,然后我们删除用户信息,这样fb_userid也在我们的最后删除。这使我们不必担心如果用户从他们的FB中删除应用程序,因为如果有人必须取消他们将从我们的网站进行,因为他们每月经常计费。
    • 我认为在您的情况下,它不是上述要点,因此您可以在不违反任何条款和条件的情况下执行以下操作

      • 不要将会话存储在cookie中,并使用FB按钮登录用户 每次他们来到您的网站。还要记下你的小记 FB登录按钮旁边的网站为“这是什么?”可能是一个工具 提示并提及该网站将存储用户fb_userid和 这不会与任何第三方共享。
      • 还要提一下,如果他们从他们的Facebook删除应用程序,id将仍然在我们的数据库中并创建 取消帐户页面,用户可以取消该帐户,但是 需要用户登录。一旦他们取消帐户删除 你的数据库中的FB id。
    • 最后,我不认为可以使用任何API调用来查看用户是否已删除了离线用户的应用,但是使用FB连接不同权限登录到您网站的人可以被检查为

    $ permissions = $ facebook-> api(“/ me / permissions”);