私は認証コンポーネントを使用していますが、問題なく動作します。しかし、コンテンツの前のデフォルトのレイアウトでは、ユーザーがログインしている場合とは異なるメニューがあります。したがって、ユーザーがログインしているかどうかを確認したいのですが、通常は$ this-> Auth-> user('id')を使用します。ただし、$ this-> Authはレイアウトでは機能しません(Authコンポーネントを使用しているコントローラーでのみ機能します)。
どうやってするの?
私は認証コンポーネントを使用していますが、問題なく動作します。しかし、コンテンツの前のデフォルトのレイアウトでは、ユーザーがログインしている場合とは異なるメニューがあります。したがって、ユーザーがログインしているかどうかを確認したいのですが、通常は$ this-> Auth-> user('id')を使用します。ただし、$ this-> Authはレイアウトでは機能しません(Authコンポーネントを使用しているコントローラーでのみ機能します)。
どうやってするの?
beforeRender()で呼び出すだけ
$this->set('userData', $this->Auth->user());
データをビューに設定し、ビューでチェックを行います。
レイアウトでデータを取得するにはbeforeRender()
、AppControllerのメソッドを呼び出す必要があります。
セッションを通過させるのは良い考えではありません。これは通常のケースではないかもしれませんが、少なくとも私はしっかりしたことをしたいと思います。そのためにセッションを使用している場合、セッションを使用していないシステム(ステートレス認証)でコードが失敗します。全体として、私はビューでセッションにアクセスすることはまったく好きではありません。セッションは私にとってはデータソースのようなものです。
セッションから認証データを読み取ることができます。何かのようなもの:
$user = $session->read('Auth');
AppControllerにセッションヘルパーを追加することを忘れないでください。
var $helpers = array('Session');