php – 在localhost上设置Facebook登录

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 在localhost上设置Facebook登录脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在按照此处列出的步骤创建FaceBook App登录
http://developers.facebook.com/docs/howtos/login/server-side-login/

我在第3步.我在localhost上进行开发,然后我将发布到具有不同App ID的Azure网站.我想首先在localhost上工作. (我还没有尝试使用非localhost域.)

在我的Facebook App配置页面上,我设置了几个相关字段:
站点URL:http:// localhost:8052 /(添加空格以允许子集到Stack Overflow)
应用程序域:localhost

如果没有设置Facebook代码,main.PHP重定向登录页面.这很好用.

<head>
<?PHP
   if(!isset($_SESSION['code'])) {
      echo ('<Meta http-equiv="REFRESH" content="0;url=/login.PHP" />');
   }
?>
</head>

LOGin.PHP使用从其示例中复制的代码重定向到Facebook的登录页面.

<?PHP

   include '/lib/url.PHP';

   $app_id = "XXXXX";
   $app_secret = "XXXXX";
   $my_url = CreateUrlForPage('welcome.PHP');

   session_start();

   $code = '';
   if(!isset($_REQUEST["code"])) {
     $_SESSION['state'] = md5(uniqid(rand(),TRUE)); // CSRF PRotection
     $dialog_url = "https://www.facebook.COM/dialog/oauth?client_id=" 
       . $app_id . "&amp;redirect_uri=" . urlencode($my_url) . "&state="
       . $_SESSION['state'];

     echo $my_url.'<br/>';
     echo $dialog_url.'<br/>';
     echo("<script> top.location.href='" . $dialog_url . "'</script>");
   }
?>

很明显,我已经混淆了上面的App ID.

我的“CreateUrlForPage”函数生成的URL与facebook登录URL一样正常

http://localhost:8052/welcome.PHP
https://www.facebook.com/dialog/oauth?client_id=XXXX&redirect_uri=http%3A%2F%2Flocalhost%3A8052%2Fwelcome.PHP&state=XXXX

(再次,这里有一些混淆.真正的值看起来没问题.第一个是整数,第二个是长十六进制字符串.)

当我导航到http:// localhost:8052 / login.PHP时,页面重定向到Facebook并发出完全无用的错误:“发生错误.请稍后重试.”

我查看了Stack Overflow上的其他一些帖子,但是他们没有解决我的问题.

我得到的错误看起来就像这里描述的错误
Facebook application login error on localhost
提供的建议是设置域名和站点URL,我已经完成了.

这个问题还有一个链接Running Facebook application on localhost
他们再次建议使用网站网址.他们还谈论app-canvas,这不是我正在使用的东西,我不知道它与登录有什么关系.

在我设置网站URL和域之前,我得到了一个不同的错误一个告诉我需要设置网站URL的错误.

解决方法

这段代码我有用.仔细检查你的Facebook应用程序ID和我的网站网址设置为http:// localhost:8052 /真的不需要设置域名登录谢谢

http://gamma.owlweb.com.ua/index.php/?route=account/register/fb

<?PHP

$app_id = "xxx";    $app_secret = "xxx"; 
$my_url ="http://localhost:3080/abc.PHP";

session_start();

$code = '';    

if(!isset($_REQUEST["code"])) {
  $_SESSION['state'] = md5(uniqid(rand(),TRUE)); // CSRF protection
  $dialog_url = 
    "https://www.facebook.com/dialog/oauth?client_id=".$app_id
    ."&redirect_uri=".urlencode($my_url)
    ."&state=".$_SESSION['state'];

  echo $my_url.'<br/>';
  echo $dialog_url.'<br/>';
  echo("<script> top.location.href='" . $dialog_url . "'</script>");
} 
?>

脚本宝典总结

以上是脚本宝典为你收集整理的php – 在localhost上设置Facebook登录全部内容,希望文章能够帮你解决php – 在localhost上设置Facebook登录所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。