我有两个CakePHP应用程序在同一个域上工作。
它们位于localhost:8080/wishlist
和localhost:8080/lighthouse
。
“愿望清单”和“灯塔”都是独立的CakePHP应用程序。
登录页面位于localhost:8080/lighthouse
,我希望灯塔应用程序生成的会话在心愿单应用程序中使用。
目录结构是
/htdocs
/wishlist
/app
/config
....
/lighthouse
/app
/config
....
我已为每个应用程序编辑了core.php
文件。我使用相同的会话cookie名称和相同的安全销售,但我无法在wishlist应用程序上获得会话。
如何在两个应用程序之间共享会话?
答案 0 :(得分:1)
首先,安装Firefox,Firebug和Firecookie。这将为Firebug添加一个“Cookies”选项卡,使您可以轻松检查Cookie。
Cookie由多个部分组成:名称,价值,域名,路径,过期等。我相信您最感兴趣的是Cookie中的“路径”部分。
默认情况下,CakePHP会将每个cookie的路径限制在应用程序的子目录中。例如,当您访问/wishlist
时,将创建一个cookie但它将被限制在/wishlist
子目录中。当您转到/lighthouse
时,之前的cookie将不适用,因此认为您没有cookie /会话,将创建一个仅限于/lighthouse
子目录的新cookie。
您需要将创建的Cookie的路径更改为/
,以便它们在所有子目录中保持不变。这应该像将ini_set('session.cookie_path', '/');
添加到应用程序的app/config/bootstrap.php
文件一样简单。
答案 1 :(得分:0)
您应该将每个人作为插件开发或在同一个应用程序中开发它们。我不确定为什么你想在共享登录屏幕时开发两个单独的应用程序。