如何使 Codeigniter 会话与边缘一起工作?
Posted
技术标签:
【中文标题】如何使 Codeigniter 会话与边缘一起工作?【英文标题】:How can I make Codeigniter session work with edge? 【发布时间】:2017-06-15 04:41:46 【问题描述】:我在 edge 中检查了会话 cookie,但它不可用。在 chrome 中,会话 cookie 工作正常。我在设置会话时尝试了 php superglobal $_SESSION[]
和魔术 getter $this->session->set_userdata($newdata);
这里是会话配置值:
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'cekosessions';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'cekosessions';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
以下是 cookie 配置值:
$config['cookie_prefix'] = 'ncitce';
$config['cookie_domain'] = 'localhost';
$config['cookie_path'] = '/';
$config['cookie_secure'] = FALSE;
$config['cookie_httponly'] = TRUE;
【问题讨论】:
尝试使用虚拟主机进行项目。 并在设置echo $this->session->userdata('user_id')
之后获取codeigniter会话
对虚拟主机一无所知。尝试让 vhost 运行但没有用。稍后再看。我有点急。不管怎样,谢谢。我想我从你提到的 vhost 中想出了一些东西。
vHost 是您可以在 xampp wamp 等上使用虚拟域的地方 ***.com/questions/27268205/… youtube.com/results?search_query=virtual+host+xampp
【参考方案1】:
实际上,我所有的 CodeIgniter 3 项目都可以在 Edge 中正常运行。请在 config.php 文件中尝试此配置
$config['sess_driver'] = 'database';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_sessions';
$config['sess_match_ip'] = TRUE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
和
$config['cookie_prefix'] = '';
$config['cookie_domain'] = '';
$config['cookie_path'] = '/';
$config['cookie_secure'] = FALSE;
$config['cookie_httponly'] = FALSE;
记得在你的数据库中创建 ci_session 表。
CREATE TABLE IF NOT EXISTS `ci_sessions` (
`id` varchar(128) NOT NULL,
`ip_address` varchar(45) NOT NULL,
`timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
`data` blob NOT NULL,
KEY `ci_sessions_timestamp` (`timestamp`)
);
如果上述方法失败,请在下方评论。
【讨论】:
是的,如果失败了。但是,我创建了虚拟主机,一切正常。看起来边缘不想为 localhost 创建 cookie。【参考方案2】:如果你使用的是低版本的codeigniter,你可以将CI的Session类替换成这个类,它在服务器上存储会话数据:
https://github.com/bcit-ci/CodeIgniter/wiki/Dariusz-Debowczyk%27s-Session-Class
另请参阅此链接进行讨论: https://expressionengine.com/forums/archive/topic/135722/codeigniter-session-problems-thread
【讨论】:
以上是关于如何使 Codeigniter 会话与边缘一起工作?的主要内容,如果未能解决你的问题,请参考以下文章
如何使passportjs google login oauth与JWT一起使用,而不是通过序列化/反序列化方法创建会话?
在这个例子中,让 jQuery/Ajax 与 CodeIgniter 一起工作的最佳方法是啥?
Flask-SQLAlchemy - 会话如何与多个数据库一起工作?