【问题标题】:CakePHP Auth Loads Too Many Session VariablesCakePHP Auth 加载了太多的会话变量
【发布时间】:2011-08-13 16:30:09
【问题描述】:

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

对我来说有问题的行位于:/lib/Cake/Controller/Component/AuthComponent.php 第 512 行。它指出,

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

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

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

【问题讨论】:

    标签: session cakephp authentication beta


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      • 2015-05-25
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多