我在我的网站上创建了一个 Facebook 登录,然后当我获取登录用户的数据时,我创建了一个数组会话来将用户的信息存储在我的控制器中。
当我转到另一个页面时,我的会话有问题,我的会话丢失了,我不知道这会发生什么?
我这样设置会话:$this->session->set_userdata('fb_user_info', $user_info);
但是,我自己的帐户登录,我做同样的方式,它适用于所有页面。
我的问题是,为什么会话会丢失?
这是我在获取 user_info 时设置会话的代码
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Account extends CI_Controller {
public function __construct()
{
parent::__construct();
//$this->authenticate();
// Facebook constructor code
$CI = & get_instance();
$CI->config->load("facebook",TRUE);
$config = $CI->config->item('facebook');
$this->load->library('facebook', $config);
public function index()
{
$user = $this->facebook->getUser();
if($user) {
try {
$user_info = $this->facebook->api('/me');
// Set session
$this->session->set_userdata('FB_SESSION_INFO', $user_info);
$args = $logout_url;
$data['getLogoutUrl'] = $this->facebook->getLogoutUrl($args);
} catch(FacebookApiException $e) {
echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>';
$user = null;
}
} else {
$param = array('scope' => 'email','redirect_uri' => $mycurrent_url);
$data['getURLLogin'] = "<a href=\"".$this->facebook->getLoginUrl($param)."\">Login with facebook</a>";
}
}