【问题标题】:Web app persistent authentication with Facebook使用 Facebook 的 Web 应用持久身份验证
【发布时间】:2015-02-22 12:52:59
【问题描述】:

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

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

我应该如何解决这个问题?

【问题讨论】:

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


    【解决方案1】:

    有几种方法:

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

    在任何情况下,您都希望将短期 Facebook 访问令牌换成长期访问令牌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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-18
      • 1970-01-01
      相关资源
      最近更新 更多