cakephp具有相同蛋糕库和共享会话的多个应用程序
我正在将cakephp作为我们公司的公共网站运行应用程序,老板让我为他们创建另一个应用程序来管理使用相同用户帐户及其权限的办公室活动.
在本地开发PC上,该项目位于D:/ wamp / www / blackstone 应用程序文件夹路径是: D:/wamp/www/blackstone/app D:/wamp/www/blackstone/office 我承诺’isAutorized’,’Auth’& ‘office’appController中的’Session’组件,用于防止检查登录.正在使用以下网址访问应用: localhost/blackstone localhost/blackstone/office 我想在办公室访问黑石的“会话”.我还没有找到解决方案. 目前我在黑石中有core.php: Configure::write('Session',array( 'defaults' => 'cake','cookie' => 'my_app','timeout' => 500,// 8 hours + 20 min,'cookie_path' => '/',) ); 办公室应用中的core.php: Configure::write('Session','cookie_path' => '../',) ); 这导致了更多的变化. 我可以尝试和改变什么? 解决方法
在调试这样的事情时,最好尝试设置最不容易出错的最简单,最愚蠢的参数,以确保您能够首先使用它 – 然后慢慢增加您希望在生产中使用的复杂性(例如,更安全)看到这可能会破坏的确切位置.
首先,确保在core.php中确保在两个应用程序中设置Security.level =“low”.否则,应用程序会进行会话引荐来检查(如果是“中等”),或甚至重新生成会话ID(如果为“高”),这肯定会阻止共享. 我看到的两个复杂点是’defaults’=> ‘cake’和相应的’cookie_path’值. As the CakePHP manual says,将其设置为’cake’将服务器会话cookie放在相对于该应用程序的目录中. 您应该注释掉cookie_path行,然后设置’defaults’=> ‘PHP’.通过这种方式,您至少知道PHP会将会话cookie放在开发计算机上的一个固定目录中. 如果必须切换回’cake’,请确保’cookie_path’参数实际上是将服务器cookie文件写入单个共享目录中.实际上,当您在浏览器中访问这两个应用程序时,请查看正在写入预期目录的文件.如果这两个应用程序正在将会话cookie写入不同的目录,那么您必须修复您的cookie_path参数以匹配,因为应用程序显然不共享.此外,根据您的CakePHP版本,您可能需要将此参数编写为以下内容而不是如何使其生效:’ini’=>数组(‘session.cookie_path’=>’/ app / dir’) 最后,仔细检查站点域,“cookie路径”和每个其他会话cookie参数是否完全相同. (您可以在Chrome网络检查器中检查客户端Cake会话cookie.)如果有任何不匹配,则应用程序将无法共享. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |