使用 CakePHP2.0 Beta,我设法为我现有的数据库模式编写了一个自定义登录处理程序。一切都很好,除了在登录时我打印出存储的会话变量,Cake 的 Auth 组件所做的是将整个记录从“成员”表(我的用户名+哈希来自)中存储在会话中。它存储一个数组,其中包含与会话完全无关的数据字段。例如,它存储了成员的创建日期、他们的地址等。所有对我来说都是无用的信息,因为我基本上只需要他们的 ID,也许还需要用户名、姓名、电子邮件地址。
对我来说,违规行位于:/lib/Cake/Controller/Component/AuthComponent.php 第 512 行。它指出,
$this->Session->write(self::$sessionKey, $user);
所以我的自定义身份验证组件返回 $user 并将整个事情扔到会话中。现在,我不想在核心库中进行编辑,因为这个项目在 2.0 出来时肯定会升级。有没有办法在会话中存储更少的信息?我想让整个事情变得更轻量级。
可能的解决方案:将我的自定义身份验证组件更改为仅将我需要的字段返回到 $user 变量中。对我应该/不应该返回哪些数据有任何担忧吗?