2个CodeIgniter的应用程序之间共享的会话(Session sharing between

2019-06-26 07:21发布

我有2个笨安装在同一服务器上运行。

所述第一应用程序是:本地主机/ AA / index.php的

第二应用是:本地主机/ AA /发票/ index.php的

所述第二应用程序是在所述第一应用程序的文件夹。 在实际环境中,他们将在同一个域。 我想获得一个单点登录工作 - 所以,如果我有用户数据在AA应用程序,我应该能够验证发票文件夹还设置。

是否有共享会话的方式。

由于文件夹将始终是在同一个域,我愿意与词库(仅PHP)外还会话工作。

编辑:他们表现出相同的会话ID时,他们没有任何数据。 我想补充一个应用程序的某些变量的那一刻,其他熄灭同步。

我也有被存储在数据库中的会话(包括应用程序共享同一个数据库。)

请建议。

谢谢! :)

Answer 1:

笨由于某种原因,推出自己的会话实现,而不是本地的PHP会议。

http://codeigniter.com/user_guide/libraries/sessions.html

你得到使用的选择:

  1. 饼干存储(不理想,小的存储大小,在cookie中的敏感数据?)。
  2. 数据库会话(使用会话cookie仍然存在)。
  3. 覆盖并推出自己的(使用PHP本身的会议!)

显然,你需要确保你的会话标识符配置正确,那么这两个应用程序可以从同一个会话的数据读取。 如果使用的数据库实现,你需要确保两个应用程序可以访问相同的数据块。

为了增加复杂性,如果你选择加密的会话,由加密类使用的盐还需要是相同的两个应用程式的,所以任何一个能够解密共享会话数据。



Answer 2:

$config['sess_cookie_name'] = 'myvalue';

在config.php文件,你可以同时在CI应用程序设置相同的值,以“文件”会话驱动程序

CI_Session Object

([用户数据] =>数组([__ci_last_regenerate] => 1490351129 [等级] => 1 [用户] => 103 [全名] =>鲁火山)

[_driver:protected] => files
[_config:protected] => Array
    (
        [cookie_lifetime] => 600
        [cookie_name] => MyHiddenValue
        [cookie_path] => /
        [cookie_domain] => 
        [cookie_secure] => 
        [expiration] => 600
        [match_ip] => 
        [save_path] => /tmp
    )



Answer 3:

如果可能我....我也注意到,这些设计问题,这是不实际的,并违背了正常的公约应提供长期和深层次问题的基础....你应该问你自己确有必要/建议2个不同的版本时,我们知道他们是2个不同的版本,他们做不同的事情的原因的框架之间共享会话数据......我只能说,不管你做什么..此设计缺陷,应使你的架构和脆弱迟早你将不得不放弃它。

PLZ让如果以后你发现,否则我知道..



Answer 4:

如果使用相同的加密密钥,默认情况下,在同一台服务器上安装代码,无论是安装将共享会话。 事实上,我发现,当我复制一个笨安装另一个客户端,但在同一台服务器上。 我认为这是一个错误,因为我很担心。



Answer 5:

$config['encryption_key'] = 'epitome';

encryption_key配置名称将是这两个应用程序文件夹相同。

路径改变encryption_key的笨是application/config/config.php的行号228。



Answer 6:

如果你的代码移动到同一个服务器,无论是会议将开始通过默认共享。



文章来源: Session sharing between two CodeIgniter Applications