Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
在Facebook画布中重定向后,禁用的Cookie将注销ion_auth用户_Facebook_Codeigniter_Facebook Graph Api_Ion Auth - Fatal编程技术网

在Facebook画布中重定向后,禁用的Cookie将注销ion_auth用户

在Facebook画布中重定向后,禁用的Cookie将注销ion_auth用户,facebook,codeigniter,facebook-graph-api,ion-auth,Facebook,Codeigniter,Facebook Graph Api,Ion Auth,我使用的是codeigniter,我有一个控制器,可以让用户登录,如果他们没有注册,可以注册,如果他们没有登录Facebook,可以提示他们登录Facebook 现在我遇到的问题是,如果cookie被禁用,控制器将成功地将它们登录(I var_转储$user,这很好),然后将它们重定向到另一个控制器,该控制器将显示用户以某种方式注销的页面(var_转储user将提供空数组) 如果我在facebook之外做同样的事情,那就好了 public function login_fb() {

我使用的是codeigniter,我有一个控制器,可以让用户登录,如果他们没有注册,可以注册,如果他们没有登录Facebook,可以提示他们登录Facebook

现在我遇到的问题是,如果cookie被禁用,控制器将成功地将它们登录(I var_转储$user,这很好),然后将它们重定向到另一个控制器,该控制器将显示用户以某种方式注销的页面(var_转储user将提供空数组)

如果我在facebook之外做同样的事情,那就好了

public function login_fb()
    {

        require './assets/fb_sdk/src/facebook.php';
        $facebook = new Facebook(array(
            'appId' => 'app_id',
            'secret' => 'secret id',
            'cookie' => false // i tried it for true as well
        ));

        // See if there is a user from a cookie (even if cookies are disabled it works)
        $user = $facebook->getUser();

        if ($user) {
            try {
                // Proceed knowing you have a logged in user who's authenticated.
                $user_profile = $facebook->api('/me');
            } catch (FacebookApiException $e) {
                echo '<pre>' . htmlspecialchars(print_r($e, true)) . '</pre>';
                $user = null;
            }

            $f_id = $user_profile['id'];

 // log in user
                $identity = $f_id;
                $password = "some-password";
                $remember = TRUE; // remember the user
                $this->ion_auth->login($identity, $password, $remember);

                // update token
                $data = array (

                    'access_token'=> $token
                );
                $this->db->where ('username',$f_id);
                $this->db->update ('users',$data);

                $user_ion = $this->ion_auth->user()->row(); 
                //var dump on user_ion will give user information all good



    header('Location: '.base_url().'deals');
}

将给出一个空数组。如果不是在facebook的画布下,这一切都很好。任何帮助都将不胜感激。

在您拥有登录表单的表单页面上设置cookie。这样,您就可以在登录cookie之前检查cookie设置是否正确

  • 用户打开或单击并进入登录页面。设置cookie,显示表单视图
  • 用户在表单上输入登录信息,然后单击
  • 在做其他事情之前——检查cookie是否已设置——如果未设置,则向他们提供一个错误页面,其中包含cookies required消息

(好吧,我甚至不知道我为什么要看这样一个老问题)

当cookies被禁用时,您如何跟踪您的PHP会话?Codeigniter(默认情况下是PHP)使用cookie跟踪PHP会话ID,因此如果禁用cookie,您的会话数据将丢失。
$user = $this->ion_auth->user()->row();