2011-08-13 20 views
0

CakePHP2.0ベータ版を使用する私は、既存のデータベーススキーマ用のカスタムログインハンドラを書くことができました。ログイン時に、保存されたセッション変数を出力し、CakeのAuthコンポーネントが行ったことは、セッション中に "Member"テーブル(私のユーザー名+ハッシュがどこにあるか)からレコード全体を保存することを除いて、これは、セッションに全く関係のないデータフィールドを持つ配列を格納しています。私は基本的に彼らのIDと多分ユーザー名、名前、電子メールアドレスが必要なので、例えば、それはメンバーが作成された日付、そのアドレスなどを保存します。私にとってCakePHP Authが多すぎるセッション変数を読み込む

問題の行が中に発見された:/lib/Cake/Controller/Component/AuthComponent.phpライン512それはだから私のカスタム認証コンポーネントは$ユーザーと、それを返し、

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

を述べてこのすべてをセッションにスローします。今度は、2.0のリリース時にこのプロジェクトが確実にアップグレードされるため、私はコアライブラリで編集したくありません。セッションに必要な情報を少なくする方法はありますか?私はこの全体をより軽く保ちたい。

解決策:必要なフィールドのみを$ user変数に返すようにカスタム認証コンポーネントを変更します。返信すべきでない/返すべきでないデータに関する懸念はありますか?

答えて

1

"解決策"を使用して問題を解決しました。 /app/Controller/Component/auth/MyController.phpに、 "FieldResource :: init($ userModel) - > find"メソッドを変更して、必要なフィールドだけを指定する 'fields'のパラメータを設定しました。魅力のように動作します。

関連する問題