使用PHP SDK 4.0进行Facebook登录集成-重定向时缺少HTTP_REFERER
我试图使用PHP SDK 4.0集成Facebook登录。一切正常,除了成功登录后Facebook重定向的页面中缺少使用PHP SDK 4.0进行Facebook登录集成-重定向时缺少HTTP_REFERER,php,facebook,facebook-php-sdk,Php,Facebook,Facebook Php Sdk,我试图使用PHP SDK 4.0集成Facebook登录。一切正常,除了成功登录后Facebook重定向的页面中缺少HTTP\u REFERER(用户授权应用程序并授予请求的权限) 登录页面: <?php ... $loginHelper = new FacebookRedirectLoginHelper('localhost/login/facebook/verify.php'); $loginURL = $loginHelper->getLoginUrl(); header("L
HTTP\u REFERER
(用户授权应用程序并授予请求的权限)
登录页面:
<?php
...
$loginHelper = new FacebookRedirectLoginHelper('localhost/login/facebook/verify.php');
$loginURL = $loginHelper->getLoginUrl();
header("Location: $loginURL");
...
?>
php.net文档说明:
将用户代理引用到的页面(如果有)的地址
当前页面。这是由用户代理设置的。并非所有用户代理
将设置此选项,有些选项提供了将HTTP\U REFERER修改为
特写。简言之,它真的不可信
那么,是Facebook没有设置这个特定的标题,还是我在某个地方做错了?应该是您的web浏览器设置HTTP\u REFERER标题,而不是Facebook本身。当您的站点从
HTTPS
站点链接或重定向时,浏览器不会设置引用者。是的。FacebookOAuth使用安全URL。所以,当URL是HTTPS时,没有机会知道引用者?有机会知道URL吗?如果可以的话,我很确定这在浏览器中会被视为一个安全漏洞。你为什么需要它?我想看看它是否是facebook重定向。没关系,我现在得即兴创作了。谢谢。
<?php
if (isset($_SERVER['HTTP_REFERER'])) {
if (strpos($_SERVER['HTTP_REFERER'], 'facebook.com') !== false) {
// Redirected from Facebook
...
}
}
?>