Php 使用Facebook的Web应用程序持久身份验证

Php 使用Facebook的Web应用程序持久身份验证,php,authentication,facebook-javascript-sdk,facebook-php-sdk,Php,Authentication,Facebook Javascript Sdk,Facebook Php Sdk,我有一个web应用程序,它有一个用PHP SDK实现的~Log In with Facebook~按钮。它照常工作。用户被重定向到Facebook。Facebook将它们重定向回web应用程序。web应用程序获取他们的信息并创建关于他们的DB记录 问题是这些登录不是持久的。下次同一用户打开web应用程序时,它将无法识别他们 我应该如何解决这个问题?有几种方法: 使用类似于普通表单登录的“记住我”cookie。要增加安全措施,如果用户相同,您可能希望使用Facebook API执行检查: 将Fac

我有一个web应用程序,它有一个用PHP SDK实现的~Log In with Facebook~按钮。它照常工作。用户被重定向到Facebook。Facebook将它们重定向回web应用程序。web应用程序获取他们的信息并创建关于他们的DB记录

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


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

有几种方法:

  • 使用类似于普通表单登录的“记住我”cookie。要增加安全措施,如果用户相同,您可能希望使用Facebook API执行检查:
  • 将Facebook OAuth令牌与数据库中的“记住我”cookie令牌关联起来
  • 当用户使用“记住我cookie”创建新会话时,您可以(使用客户端代码)检查相应的Facebook令牌是否有效,并且用户是否仍然使用您的应用程序登录
  • 仅存储Facebook令牌客户端(本地存储)。在随后的会话中,您可以通过Facebook API和存储的令牌检查用户是谁。但这种方法速度较慢

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

    阅读有关访问令牌2的更多信息:

    1:
    2: