0

使用 CakePHP2.0 Beta,我设法为我现有的数据库模式编写了一个自定义登录处理程序。一切都很好,除了在登录时我打印出存储的会话变量,Cake 的 Auth 组件所做的是将整个记录从“成员”表(我的用户名+哈希来自)中存储在会话中。它存储一个数组,其中包含与会话完全无关的数据字段。例如,它存储了成员的创建日期、他们的地址等。所有对我来说都是无用的信息,因为我基本上只需要他们的 ID,也许还需要用户名、姓名、电子邮件地址。

对我来说,违规行位于:/lib/Cake/Controller/Component/AuthComponent.php 第 512 行。它指出,

$this->Session->write(self::$sessionKey, $user);

所以我的自定义身份验证组件返回 $user 并将整个事情扔到会话中。现在,我不想在核心库中进行编辑,因为这个项目在 2.0 出来时肯定会升级。有没有办法在会话中存储更少的信息?我想让整个事情变得更轻量级。

可能的解决方案:将我的自定义身份验证组件更改为仅将我需要的字段返回到 $user 变量中。对我应该/不应该返回哪些数据有任何担忧吗?

4

1 回答 1

1

我已经使用我的“可能的解决方案”解决了这个问题。在 /app/Controller/Component/auth/MyController.php 中,我将“ClassRegistry::init($userModel)->find”方法更改为有一个“字段”参数,我只指定我需要的字段。奇迹般有效。

于 2011-11-16T21:05:08.990 回答