gpt4 book ai didi

session - cakephp 多个应用程序具有相同的蛋糕库和共享 session

转载 作者:行者123 更新时间:2023-12-02 17:42:09 27 4
gpt4 key购买 nike

我正在使用 cakephp 运行应用程序作为我们公司的公共(public)网站,老板要求我为他们创建另一个应用程序,以使用相同的用户帐户及其权限来管理办公室事件。

在本地开发 PC 上,该项目位于 D:/wamp/www/blackstone
我刚刚复制了 D:/wamp/www/blackstone/app 并将其粘贴到同一位置,并将其命名为 office

应用程序文件夹路径是:

D:/wamp/www/blackstone/app
D:/wamp/www/blackstone/office

我已在“office”appController 中提交了“isAutorized”、“Auth”和“Session”组件,以防止检查登录。正在使用以下 URL 访问应用程序:

localhost/blackstone
localhost/blackstone/office

我想访问 officeblackstone 的“ session ”。我还没有找到解决办法。

目前我在 blackstone 中有 core.php 为:

Configure::write('Session', array(
'defaults' => 'cake',
'cookie' => 'my_app',
'timeout' => 500, // 8 hours + 20 min,
'cookie_path' => '/',
)
);

core.phpoffice 应用程序中为:

Configure::write('Session', array(
'defaults' => 'cake',
'cookie' => 'my_app',
'timeout' => 500, // 8 hours + 20 min,
'cookie_path' => '../',
)
);

这导致了更多的变化。

我可以尝试改变什么?

最佳答案

在调试此类内容时,最好尝试设置最简单、最愚蠢、最不容易出错的参数,以确保您可以首先使其正常工作 - 然后慢慢增加您想要在生产中使用的复杂性(例如,更安全)以准确地了解哪里可能会出现问题。

首先,确保在 core.php 中确保在两个应用程序中设置 Security.level = "low"。否则,应用程序会进行 session 引用检查(如果“中”),甚至重新生成 session ID(如果“高”),这肯定会阻止共享。

我看到的两个复杂点是“defaults”=>“cake”和相应的“cookie_path”值。 As the CakePHP manual says ,将其设置为“cake”会将服务器 session cookie 放置在与该应用程序相关的目录中。

您应该注释掉 cookie_path 行,然后设置 'defaults' => 'php'。这样您就知道 PHP 至少会将 session cookie 放置在您的开发计算机上的一个固定目录中。

如果您必须切换回“cake”,请确保您的“cookie_path”参数实际上将服务器 cookie 文件写入单个共享目录中。当您在浏览器中访问这两个应用程序时,实际查看写入预期目录的文件。如果两个应用程序将 session cookie 写入不同的目录,那么您必须修复 cookie_path 参数以匹配,因为应用程序显然没有共享。另外,根据您的 CakePHP 版本,您可能需要按以下方式编写此参数,而不是如何使用它才能使其生效: 'ini' => array('session.cookie_path' => '/app/目录')

最后,仔细检查站点域、“cookie 路径”和所有其他 session cookie 参数是否完全相同。 (您可以在 Chrome Web 检查器中检查客户端 Cake session Cookie。)如果有任何不匹配的情况,则应用程序将无法共享。

关于session - cakephp 多个应用程序具有相同的蛋糕库和共享 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31892178/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com