0

CakePHP2.0 Betaを使用して、既存のデータベーススキーマのカスタムログインハンドラーを作成することができました。ログイン時に保存されたセッション変数を出力し、CakeのAuthコンポーネントが行ったことは、セッションの「メンバー」テーブル(ユーザー名とハッシュの取得元)のレコード全体を保存することを除いて、すべて順調です。これは、セッションにまったく関係のないデータフィールドを含む配列を格納しています。たとえば、メンバーが作成された日付、アドレスなどが保存されます。基本的に必要なのはIDとユーザー名、名前、メールアドレスだけなので、私にとってはまったく役に立たない情報です。

私にとって問題のある行は、/ lib / Cake / Controller / Component/AuthComponent.phpの512行にあります。

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

したがって、私のカスタム認証コンポーネントは$ userを返し、このすべてをセッションにスローします。さて、このプロジェクトは2.0がリリースされたときに間違いなくアップグレードされるので、コアライブラリでの編集には行きたくありません。セッションに保存する情報を減らす方法はありますか?この全体をもっと軽量に保ちたいです。

考えられる解決策:カスタム認証コンポーネントを変更して、必要なフィールドのみを$user変数に返すようにします。どのデータを返す必要があるか、または返す必要がないかについて懸念はありますか?

4

1 に答える 1

1

私は自分の「可能な解決策」を使用して問題を解決しました。/app/Controller/Component/auth/MyController.phpで、「ClassRegistry :: init($ userModel)-> find」メソッドを変更して、必要なフィールドのみを指定する「fields」のパラメーターを設定しました。チャームのように機能します。

于 2011-11-16T21:05:08.990 に答える