未记住带有 Ion AUTH 登录的 CodeIgniter


CodeIgniter with Ion AUTH login not remembered

我正在使用 ION 身份验证插件进行 CodeIgniter 登录。我不知道为什么,但我有这样的行为:我填写登录表单,发送,用户匹配,CI将此数据保存到表中default_ci_sessions user_data"列中,然后重新加载页面,用户仍未登录,并在表中创建default_ci_sessions具有空"user_data"列的新行。你知道,哪里可能有问题?这是我的会话配置:

$config['sess_cookie_name']     = 'pyrocms' . (ENVIRONMENT !== 'production' ? '_' . ENVIRONMENT : '');
$config['sess_expiration']      = 0;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie']  = TRUE;
$config['sess_use_database']    = TRUE;
// don't change anything but the 'ci_sessions' part of this. The MSM depends on the 'default_' prefix
$config['sess_table_name']      = 'default_ci_sessions';
$config['sess_match_ip']        = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;

解决。我需要将 cookie 设置设置为:

$config['cookie_prefix']    = "";
$config['cookie_domain']    = "";
$config['cookie_path']      = "";

我可以看到您自己回答了问题,但是为了添加一个解决方案以使具有相同问题的其他人更容易找到,我在此处添加了它,并进一步解释了为什么它是解决方案。

您的完整代码:

$config['sess_cookie_name']     = 'pyrocms' . (ENVIRONMENT !== 'production' ? '_' . ENVIRONMENT : '');
$config['sess_expiration']      = 0;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie']  = TRUE;
$config['sess_use_database']    = TRUE;
$config['sess_table_name']      = 'default_ci_sessions';
$config['sess_match_ip']        = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;
//Added code to fix issue 
$config['cookie_prefix']    = "";
$config['cookie_domain']    = "";
$config['cookie_path']      = "/";
  • $config['cookie_prefix'] 如果需要避免,请设置前缀碰撞
  • $config['cookie_domain'];设置为 .your-domain.com网站范围的饼干
  • $config['cookie_path']; 通常将是一个正斜杠

将每个都设置为等于"几乎可以确保为整个域设置cookie。