使用Facebook进行Web应用持久身份验证

时间:2014-12-24 11:36:51

标签: php authentication facebook-javascript-sdk facebook-php-sdk

我有一个网络应用程序,它带有一个使用PHP SDK实现的“使用Facebook登录”按钮。它像往常一样工作。用户被重定向到Facebook。 Facebook将它们重定向回Web应用程序。 Web应用程序获取其信息并创建有关它们的DB记录。

问题是这些登录不是持久性的。下次同一个用户打开Web应用程序时,它将无法识别它们。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

有几种方法:

  1. 使用类似于普通表单登录的记住我的cookie。要增加安全措施,如果用户相同,您可能需要使用Facebook API进行检查:
    1. 关联Facebook OAuth令牌和数据库中的“记住我”Cookie令牌。
    2. 当用户使用“记住我的cookie”创建新会话时,您可以检查(使用客户端代码)相应的Facebook令牌是否有效且用户是否仍使用您的应用登录。
  2. 仅存储Facebook令牌客户端(本地存储)。在后续会话中,您可以通过Facebook API和存储的令牌检查用户是谁。这种方法虽然慢了。

  3. 在任何情况下,您都希望将短期访问令牌交换为长期访问令牌 1 并将其存储在您的数据库中。

    详细了解访问令牌 2

    1:https://developers.facebook.com/docs/facebook-login/access-tokens#extending
    2:https://www.sammyk.me/access-token-handling-best-practices-in-facebook-php-sdk-v4