Facebook登录:在每个页面检查身份验证?

时间:2013-01-20 00:59:19

标签: php facebook session

我正在关注本指南:https://developers.facebook.com/docs/howtos/login/getting-started/

关于登录,一切正常。我不明白的是我如何处理'会话':

  • 我想使用FB.getLoginStatus而不是会话?
  • 每次用户在我的网站上输入新页面时,我都要检查FB.getLoginStatus 36。这是否意味着我必须为每个页面初始化JavaScript SDK?每个页面只有50行代码,只是为了检查登录状态。

我使用的是PHP,MySQL,JavaScript和HTML5。

2 个答案:

答案 0 :(得分:1)

  

我想使用FB.getLoginStatus而不是会话?

FB.getLoginStatus用于帮助您根据用户的登录状态优化访问者体验,因此不能替代“会话”。

  

每次用户进入新页面时,我都要检查FB.getLoginStatus   在我的网站上。这是否意味着我必须初始化JavaScript SDK   对于每一页?每个页面只需要检查50行代码   登录状态......

好吧,如果您想使用SDK,初始化Javascript SDK就是要做的事情。现在我没有看到代码行数有什么问题,因为Facebook已经异步加载SDK,因此它不会阻止你的页面资源。

对于您的第一点,您不必每次在页面加载时调用FB.getLoginStatus,Facebook已在相关的document中说明了这一点:

  

虽然您可以随时致电FB.getLoginStatus(例如,当时   用户尝试采取社交行动),大多数社交应用需要知道   页面加载后,用户的状态会尽快显示。在这种情况下,   而不是明确地调用FB.getLoginStatus,有可能   在致电status: true时设置FB.init,检查用户的状态。

     

要接收此通话的回复,您必须订阅   auth.statusChange事件。此事件传递的响应对象是   与通过调用FB.getLoginStatus返回的相同   明确。


现在您可能错过的一件事是PHP-SDK

  

Facebook SDK for PHP可以与Facebook SDK一起使用   为Javascript提供跨两者的无缝会话管理   应用程序的客户端和服务器端。

这样可以让您的生活更轻松,因为您可以在加载页面之前了解用户状态,从而相应地自定义用户体验,然后等待Javascript SDK触发的任何状态更改。

答案 1 :(得分:0)

在Facebook开发者专区,他们似乎有一个关于如何在不调用Javascript SDK的情况下登录的部分。

https://developers.facebook.com/docs/howtos/login/client-side-without-js-sdk/

用户将拥有一个API访问令牌,可用于进一步的请求。

我希望有所帮助。