CakePHP Auth загружает слишком много сессионных переменных - PullRequest
0 голосов
/ 13 августа 2011

Используя CakePHP2.0 Beta, мне удалось написать собственный обработчик входа в систему для моей существующей схемы базы данных.Все хорошо, за исключением того, что после входа в систему я распечатал сохраненные переменные сеанса и то, что сделал компонент Cake Auth, - это сохранил всю запись из таблицы "Member" (откуда берутся мои имена пользователей и хэши) в сеансе.Он хранит массив с полями данных, которые не имеют отношения к сеансу.Например, он хранит дату, когда участник был создан, его адрес и т. Д. Вся эта довольно бесполезная информация для меня, поскольку мне в основном нужны только их идентификатор и, возможно, имя пользователя, имя, адрес электронной почты.

Обидные строки для меня:находится в: /lib/Cake/Controller/Component/AuthComponent.php строка 512. В ней говорится,

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

Так что мой пользовательский компонент проверки подлинности возвращает $ user, и он выбрасывает все этов сессию.Теперь я не хочу заниматься редактированием в основных библиотеках, потому что этот проект определенно будет обновлен, когда выйдет 2.0.Есть ли способ хранить меньше информации в сессиях?Я хочу, чтобы все это было более легким.

Возможное решение: Измените мой пользовательский компонент аутентификации, чтобы возвращать только нужные мне поля в переменную $ user.Есть ли какие-либо опасения относительно того, какие данные я не должен / не должен возвращать?

1 Ответ

1 голос
/ 17 ноября 2011

Я решил проблему, используя свое «возможное решение».В /app/Controller/Component/auth/MyController.php я изменил метод «ClassRegistry :: init ($ userModel) -> find», чтобы иметь параметр для «полей», где я указываю только те поля, которые мне нужны.Работает как шарм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...