为什么可以';t PHP SDK设置了一个Facebook会话


Why can't the PHP SDK set a Facebook session?

当我的应用程序的Facebook会话到期时,我必须使用Javascript SDK创建一个新会话。这非常令人讨厌,因为在用户看来,他们偶尔会注销,就像我在检测服务器端做的大多数事情一样。然后,当他们重新加载页面并且javascript已经执行时,会话被重新创建。

我知道我可以很简单地通过使用javascript显示一条消息来解决这个问题,该消息说"请重新加载页面"(很像StackOverflow),但是,我不希望我的用户必须这样做。我承认PHP SDK不能做到这一点,但我能用PHP而不是Javascript自己实现吗?

有人能解释为什么PHP不能做到这一点吗?

PHP正在您的服务器上运行,这与Facebook的服务器无关。请记住,cookie已锁定到原始域。cookie看起来是由您的服务器设置的,并且有一个"yoursite.com"的原始域,而不是"facebook.com"。

另一方面,JS在客户端上运行,向Facebook服务器发出的任何请求也将遵守Facebook服务器设置的任何cookie。