1

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

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

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

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

目录结构为

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

我已经core.php为每个应用程序编辑了文件。我正在使用相同的会话 cookie 名称和相同的证券销售,但我无法在愿望清单应用程序上获得会话。

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

4

2 回答 2

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文件一样简单。

于 2010-06-08T13:01:30.893 回答
0

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

于 2010-06-09T00:15:16.543 回答