続:CakePHP1.2 Authコンポーネントを使った認証機能

続:CakePHP1.2 Authコンポーネントを使った認証機能

こんにちは、最近引越しを考えている ichikawaです。
今回は、前回の「CakePHP1.2 Authコンポーネントを使った認証機能」の続きを書きたいと思います。

未ログイン状態で見られるページを設定する

新規登録ページや、パスワード再設定のページなど、ログインしていない状態でも表示したい場合には設定が必要です。
例えば、新規登録がregisterアクション、パスワード再設定がforgot_passwordアクションの場合は、コントローラーに以下のように設定します。

$this->Auth->allow('register', 'forgot_password');

以上で、設定したページはログインしていない状態でも見られるようになります。

Authコンポーネントのハッシュ化の方法を独自に設定する

Authコンポーネントは、デフォルトではコアユーティリティクラス Security の hash 関数を使用します。(公式マニュアルより
例えば「ハッシュ化したくない」とか、「md5でハッシュ化したい」場合には、hashPasswords という関数を持つクラスのオブジェクトを authenticate にセットすれば可能です。
例えば、AccountモデルにhashPasswordsという関数を設定する例は下記の通りです。
まずコントローラーで、以下のように設定します。

$this->Auth->authenticate = ClassRegistry::init('Account');

そして、AccountモデルにhashPasswords 関数を用意します。

function hashPasswords($data)
{
    $md5_passwd = md5($data[$this->name]['password']);
    $data[$this->name]['password'] = $md5_passwd;
    return  $data;
}

以上で、パスワードのハッシュ化が設定したもの(上記ではmd5)に変更できます。
尚、独自のハッシュ化でなければ、Security クラスでの変更も可能です。
詳しくはこちらの公式マニュアルをご覧ください。

ログインしているユーザー情報を取得する

「$this->Auth->user()」で、ログインしているユーザー情報を取得できます。

// コントローラー
$user = $this->Auth->user();
$this->set('user', $user);
// ビュー
echo "こんにちは ".$user['name']." さん!";

上記のような方法で、簡単にログインしているユーザー情報が取得できます。

以上で簡単ですが、Authコンポーネントをご紹介いたしました。
何かのお役にたてれば幸いです。

  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ