私は自分のサイトで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>";
}
}