Cake PHP パスワードを暗号化してDBに格納

PHP

CakePHP パスワードを暗号化してDBに格納する

CakePHP 1.3

Cake PHPのマニュアルサイトなどをみると、usersテーブルを規則通りに、usersという名称で、usernameとpasswordというフィールド名で作成すれば、パスワードは自動的に暗号化されてDBに格納される、と書いています。

http://book.cakephp.org/ja/view/172/Authentication

しかし、usersコントローラーを作った状態でユーザーを追加してみると、パスワードが暗号化されていません。

あれあれ?と思いますが、これはAuthコンポーネントを追加しないと、パスワードを暗号化してくれないからなんですね。

しかし、ユーザーがない状態でAuthコンポーネントを追加すると、認証がかかってしまってログインしないとユーザーが追加できない、しかしユーザーがないのでログインしようがないというジレンマに陥ってしまいます。

そのため、最初は、すべてのアクションを許可するようにusersコントローラーに設定しておきましょう。

//users_controller.php内に下記を追加

 
 var $components = array('Auth');
 	function beforeFilter() {
 	    parent::beforeFilter(); 
 	    $this->Auth->allow('*');
 	}

その状態で、ユーザーをAddすれば、パスワードが暗号化されて、ユーザーを追加できます。

それが終わったら、function beforeFilter()は消去しましょう。

カテゴリーPHP

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です