CakePHP会话在同一个域上的两个应用程序之间共享

时间:2010-06-08 09:52:43

标签: cakephp cakephp-1.3

我有两个CakePHP应用程序在同一个域上工作。

它们位于localhost:8080/wishlistlocalhost:8080/lighthouse

“愿望清单”和“灯塔”都是独立的CakePHP应用程序。

登录页面位于localhost:8080/lighthouse,我希望灯塔应用程序生成的会话在心愿单应用程序中使用。

目录结构是

/htdocs
    /wishlist
        /app
        /config
        ....
    /lighthouse
        /app
        /config
        ....

我已为每个应用程序编辑了core.php文件。我使用相同的会话cookie名称和相同的安全销售,但我无法在wishlist应用程序上获得会话。

如何在两个应用程序之间共享会话?

2 个答案:

答案 0 :(得分:1)

首先,安装FirefoxFirebugFirecookie。这将为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)

您应该将每个人作为插件开发或在同一个应用程序中开发它们。我不确定为什么你想在共享登录屏幕时开发两个单独的应用程序。