Session CakePHP Auth加载的会话变量太多

Session CakePHP Auth加载的会话变量太多,session,cakephp,authentication,beta,Session,Cakephp,Authentication,Beta,使用CakePHP2.0 Beta版,我成功地为现有数据库模式编写了一个自定义登录处理程序。一切都很好,只是在登录时我打印出了存储的会话变量,Cake的Auth组件所做的是在会话中存储“Member”表(我的用户名+哈希来自于该表)中的整个记录。它存储的数组中包含与会话完全无关的数据字段。例如,它存储了成员的创建日期、地址等。所有这些信息对我来说都是毫无用处的,因为我基本上只需要他们的ID,可能还有用户名、姓名、电子邮件地址 在:/lib/Cake/Controller/Component/Au

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

在:/lib/Cake/Controller/Component/AuthComponent.php第512行中可以找到有问题的行。它说

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

因此,我的自定义身份验证组件返回$user,并将整个内容抛出到会话中。现在,我不想在核心库中进行编辑,因为当2.0问世时,这个项目肯定会升级。有没有办法在会话中存储更少的信息?我想让整个东西更轻一些


可能的解决方案:更改我的自定义身份验证组件,使其仅将我需要的字段返回到$user变量中。对于我应该/不应该返回的数据是否有任何顾虑?

我已经用“可能的解决方案”解决了这个问题。在/app/Controller/Component/auth/MyController.php中,我将“ClassRegistry::init($userModel)->find”方法更改为具有“fields”参数,其中我只指定所需的字段。工作起来很有魅力