droe9376 2012-09-14 03:14
浏览 48

Codeigniter登录与facebook返回userId 0,登录成功后重定向回到我身边

I have developed login facebook app(Facebook SDK) with codeigniter, Firstly, I do in my local.

It's working well, when do login successful, facebook redirect back by redirect_uri to my side controller,and get userId to query information of user logged.

But, when I upload this code to Server side, redirect_uri is worked, but I get return 0 of userId, so , if userId 0, I can't query data of users logged.

My question is, why userId return 0 , after login succeed?

Code Controller:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

    class Setting extends CI_Controller {

       public function __construct()
       {   

          $CI = & get_instance();
          $CI->config->load("facebook",TRUE);
          $config = $CI->config->item('facebook');
          $this->load->library('facebook', $config);

       }
       public function index() 
       {
             if($this->form_validation->run() == FALSE){

                 $this->acc_login();
             }else {
                 redirect('check_session', 'refresh');  
             }
       }

       public function acc_login()
       {
             $user = $this->facebook->getUser();

             if($user) {

             try {              
                  $user_info = $this->facebook->api('/me');
                  redirect(base_url());             
             } catch(FacebookApiException $e) {
                  echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>';
                  $user = null;
             }
             } else {
                    $param = array('scope' => 'email,read_stream','redirect_uri' => $my_url);
                    $data['getURLLogin'] = "<a href=\"".$this->facebook->getLoginUrl($param)."\"><img src=\"".base_url()."public/frontend/images/login-fb.png\" width=\"155\" height=\"25\" /></a>";

             }
       }

    }

?>
  • 写回答

1条回答 默认 最新

  • dongwo7858 2012-10-09 21:41
    关注

    Try to add

    parse_str( $_SERVER['QUERY_STRING'], $_REQUEST );
    

    before

    $user = $this->facebook->getUser();
    

    UPDATE

    FB changed the parameter from "redirect_url" to "next" from v2 to v3, and is poooooorly documented. Try "next", should work for you.

    source

    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题