認証が成功すると、簡単に呼び出すことができ、認証されたユーザーか匿名セッションかを判断するために、セッションに組み込まれるオブジェクトがありUser
ます(セキュリティ情報はありません)。ユーザーが自分の情報の一部またはすべてを変更できるパスはいくつかありますが、そのセッション値を最新の状態に保ちたいと思います。明白な答えは、コールバックの値を更新することですがafterSave()
、もちろん、それはMVCに違反します。
セッションの書き込みをあちこちにドロップする必要がないように、すべての変更を1か所でキャプチャする別の方法はありますか?私は何も考えられず、他のアイデアも見つけることができませんでした。このようなことをしようとしているのは私だけですか?
ありがとう。
最終的な解決策:率直に言って、私はneilcrookesの応答を答えとしてマークしました。これは、より良い方法がないように思われるためです。しかし、この方法は私のOCD感覚に違反するので、私は少し異なる道を歩みました。私はUser::authenticate()
、認証されたユーザーオブジェクトを呼び出し元に返して、メソッドが必要な処理を実行できるようにすることにしました。発信者が「したい」ことの1つは、セッションでその値を削除することです。冗長性ですが、非常に限られています。私の考えでは、それはモデルからセッションにアクセスするよりも良いと感じました(ただし、そうする場合は確かに気になりますが、シナリオを実行しない場合は気になります)。