简体   繁体   English

登录后Facebook与codeigniter连接重定向循环

[英]Facebook connect with codeigniter redirect in loop after login

I am trying to connect facebook using codeigniter. 我正在尝试使用Codeigniter连接Facebook。 If i am connecting fist time,then I can see permission popup but after I authorise permission i am getting multiple redirect loop error. 如果我在第一时间连接,那么我可以看到权限弹出窗口,但是在我授权权限后,我得到了多个重定向循环错误。

If I am already logged in and authorised site then why it is not getting uid. 如果我已经登录并获得授权,那么为什么它没有获取uid。

I have give site url in facebook: http://mysite.com/ 我在Facebook中提供了网站网址: http//mysite.com/

and my redirect uri is http://mysite.com/facebook/ 而我的重定向uri是http://mysite.com/facebook/

I have added these files in my library folder. 我已将这些文件添加到库文件夹中。

library/fb_connect.php
library/facebook/facebook.php
library/facebook/base_facebook.php
library/facebook/fb_ca_chain_bundel.crt

Last 3 files in facebook folder are facebook SDK files. facebook文件夹中的最后3个文件是facebook SDK文件。

Here is code in my fb_connect.php 这是我的fb_connect.php中的代码

<?php
include(APPPATH.'libraries/facebook/facebook.php');

 class Fb_connect {


function connect(){


$facebook = new Facebook(array(
    'appId'  => 'XXXXXXX',
    'secret' => 'XXXXXXXXXXXXXX',
    'cookie' => true,
 ));

    //Get User ID
  $user=$facebook->getUser();

  if(!$user){
   $loginUrl=$facebook->getLoginUrl(array(
    'scope'         => 'email,publish_stream,user_birthday,user_location',
    'redirect_uri'  => 'http://localhost/beta/facebook/',
    'display'=> 'popup'
    ));

    redirect($loginUrl')";
    exit();


 } else {
$user_profile = $facebook->api('/me');

 print_r($user_profile);

}
 ?>

And Here is my controller code: 这是我的控制器代码:

function  facebook(){

  $this->load->library('fb_connect');
  $user_data=$this->fb_connect->connect();

 }

There's a few things; 有几件事;

1.You said "and my redirect uri is http://mysite.com/facebook/ " - but in your code: 1.您说“我的重定向uri是http://mysite.com/facebook/”-但是在您的代码中:

'redirect_uri'  => 'http://localhost/beta/facebook/',

Should be: 应该:

'redirect_uri'  => 'http://mysite.com/facebook/',

2.You said "I have give site url in facebook: http://mysite.com/ " - you need to specifically set the return URL in your facebook api aswell - should be "http://mysite.com/facebook" 2.您说“我在Facebook中提供了网站网址: http : //mysite.com/ ”-您还需要在您的facebook api中专门设置返回网址-应该为“ http://mysite.com/facebook”

3.You said your redirect is "http://mysite.com/facebook/" - have you set this as a route? 3.您说您的重定向是“ http://mysite.com/facebook/”-您是否将此设置为路由? Because normally it should be "http://mysite.com/mycontroller/facebook/" 因为通常它应该是“ http://mysite.com/mycontroller/facebook/”

4.You have a typo (if this is a copy + paste): 4.您有错别字(如果这是副本+粘贴):

redirect($loginUrl')";

should be 应该

redirect($loginUrl);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM