CakePHPのAuthコンポーネントでメールアドレス&パスワード認証にする
標準ではusername, passwordで認証する形になっているAuth componentですが、ログインする際にメールアドレスを使った方が忘れにくい上、打ち間違いが少なくユーザーにとって良いと思います。
Auth コンポーネントの変数を設定する :: 認証 :: 主要なコンポーネント :: マニュアル :: 1.3コレクション
app/controllers/users_controller.php
<?php function beforeFilter(){ //認証に使うペアをemail, passwordに変更 $this->Auth->fields = array( 'username' => 'email', 'password' => 'password' ); }
app/views/users/login.ctp
<?php if ($session->check('Message.auth')) { $session->flash('auth'); } echo $form->create('User', array('action' => 'login')); echo $form->input('email'); //変更部分 echo $form->input('password'); echo $form->end('Login');
app/views/users/register.ctp
<?php echo $form->create('User'); echo $form->input('email'); //変更部分 echo $form->input('username'); echo $form->input('password'); echo $form->input('password_confirm', array('type' => 'password')); echo $form->end('Register');