Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么可以';PHP SDK是否设置了Facebook会话?_Php_Facebook_Facebook Graph Api_Facebook Javascript Sdk_Facebook Php Sdk - Fatal编程技术网

为什么可以';PHP SDK是否设置了Facebook会话?

为什么可以';PHP SDK是否设置了Facebook会话?,php,facebook,facebook-graph-api,facebook-javascript-sdk,facebook-php-sdk,Php,Facebook,Facebook Graph Api,Facebook Javascript Sdk,Facebook Php Sdk,当我的应用程序的Facebook会话过期时,我必须使用Javascript SDK创建一个新会话。这是非常恼人的,因为在用户看来,他们偶尔会注销,就像我在检测服务器端做的那样。然后,当他们重新加载页面并执行javascript时,会话将重新创建 我知道我可以很简单地通过使用javascript显示一条消息来解决这个问题,该消息说“请重新加载页面”(很像StackOverflow),但是,我不希望我的用户必须这样做。我承认PHPSDK做不到这一点,但是我可以用PHP而不是Javascript来实现

当我的应用程序的Facebook会话过期时,我必须使用Javascript SDK创建一个新会话。这是非常恼人的,因为在用户看来,他们偶尔会注销,就像我在检测服务器端做的那样。然后,当他们重新加载页面并执行javascript时,会话将重新创建

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


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

PHP正在您的服务器上运行,这与Facebook的服务器无关。请记住,Cookie被锁定到原始域。cookie似乎是由您的服务器设置的,其原始域为“yoursite.com”,而不是“facebook.com”


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

PHP不能使用curl或file\u get\u内容来请求设置cookie的PHP页面吗?或者这些标题中没有包含cookie?您可以执行任何cookie操作,但应用程序发送到客户端的任何cookie都将锁定到服务器的域。您的服务器无法设置将实际发送到facebook服务器的facebook cookie,因为cookie将只发送回您的服务器。如果这是可能的,那么在用户的银行网站上窃取/设置cookie对你来说是微不足道的(例如)。不,我完全理解,我不是那个意思。facebook域名必须为facebook设置cookie,这是常识。我的意思是,我的服务器可以使用上述功能之一调用facebook域上的页面,从而从facebook服务器设置facebook cookie吗?例如,文件获取内容(facebook.com/cookie.php)?或者这不起作用,因为它仍然来自我的服务器?如果你可以在客户端获得JS代码,向你发送facebook会话cookie(名称/值)对,那么你可以劫持用户的facebook会话,并代表他们对FB执行操作。不知道FB是否通过将cookie绑定到特定的IP/UAs/任何东西来防止会话劫持。这就是我要做的,但我不想求助于它。无论如何,谢谢你。