2011-08-13 14 views
0

使用CakePHP2.0貝塔我設法寫我現有的數據庫模式自定義登錄處理程序。一切正常,但在登錄我打印出存儲會話變量,什麼蛋糕的驗證組件所做的是整個記錄從「會員」表中的會話(其中我的用戶名+哈希來自)存儲。它存儲的數據字段與會話完全無關。例如,它存儲了成員的創建日期,他們的地址,等我所有漂亮無用的信息,我基本上只需要自己的ID,也許用戶名,姓名,電子郵件地址。CakePHP的驗證加載過多的會話變量

的違規行爲我發現:/lib/Cake/Controller/Component/AuthComponent.php線512它指出,

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

所以我自定義的驗證組件返回$用戶和它將整個事件引入會話中。現在,我不想去的核心庫的編輯,因爲這個項目是一定要去的,當2.0出來進行升級。有沒有辦法在會話中存儲較少的信息?我想讓整個事情更輕量化。

可能的解決方案:將我的自定義身份驗證組件更改爲僅將我需要的字段返回到$ user變量中。對於我應該/不應該返回的數據有什麼擔憂嗎?

回答

1

我用我的「可能的解決方案」解決了這個問題。在/app/Controller/Component/auth/MyController.php中,我改變了「ClassRegistry :: init($ userModel) - > find」方法來爲'字段'提供一個參數,我只指定了我需要的字段。奇蹟般有效。