エントリー

CakePHPのAuthコンポーネント利用時、暗号化を独自に行う方法

自分用にメモ。

Authコンポーネントを利用していれば、ユーザー情報登録時にパスワードを自動的に暗号化してくれます。ですがその影響で、パスワードの英数字チェックや長さチェックができません。(validate実行時は暗号化済みのため。)

回避方法は色々あるようですが、

  • Authコンポーネントによる暗号化をOFFにする
  • データベースへ格納する直前に自分で暗号化する

で対処する方法をメモ。

暗号化を回避する方法自体は、以下で紹介されています。

AuthComponentのパスワード暗号化を無効にする方法

このままだと暗号化せずにデータベースへ格納されるので、UserモデルのbeforeSaveメソッド内でAuthコンポーネントを使って暗号化を行います。具体的には以下のようなコードで暗号化できます。

function beforeSave()
{
  $this->data['User']['password'] = AuthComponent::password($this->data['User']['password']);

  return true;
}

モデル内でAuthコンポーネントを使うので、あらかじめ以下のコードでコンポーネントを読み込んでおく必要があります。

App::import('Component', 'Auth');

ひとまずこの方法で進めてみるとします。

ページ移動

ユーティリティ

カテゴリー

検索

エントリー検索フォーム
キーワード

過去ログ

過去ログ表示フォーム
キーワード

Feed