ログイン中のユーザーがパスワードを再設定したい時にうまくいかないので質問です。
下記のようなフォームでパスワードを再設定させようとしています。
lang
1<form action="{{ url('passwordSetting') }}" method="post"> 2<label for="password">現在のパスワード 3<input type="password" name="password" class="formBar" placeholder="password"/> 4</label> 5 6 <p class="textCenter">パスワードの再設定</p> 7 8<label for="password">新しいパスワード(6文字以上、英数記号のみ) 9<input type="password" name="passwordNew" class="formBar" placeholder="password"/> 10</label> 11 12<label for="password">新しいパスワード(再確認) 13<input type="password" name="passwordConfirm" class="formBar" placeholder="password"/> 14</label> 15 16<button style="width:100%" type="submit" class="button button-flat-primary button-block button-rounded button-large">更新する</button>
受けるコントローラーは
routes.php
lang
1Route::post('/passwordSetting' , 'UserEditModeController@passwordSettingExec');
として
/controllers/UserEditModeController.php
lang
1 public function passwordSettingExec() 2 { 3 //ログインユーザーの情報を取得 4 $userInfo = Auth::user(); 5 $userUniqId = $userInfo->userUniqId; 6 7 //現在のユーザーパスワードをDBから取得 8 $hashedPassword = $userInfo->password; 9 $password = Input::get('password'); 10 11 //入力された現在パスワードとDBのパスワードが合致しているかチェック 12 if (Hash::check($password, $hashedPassword)) 13 { 14 // パスワード一致したら。。。 15 // 新しいパスワードの2つがあっているかチェックして 16 if( Input::get('passwordNew') == Input::get('passwordConfirm')) 17 { 18 //合っていれば新しいパスワードをHashしてDBに格納 19 $encrypted = Hash::make('passwordNew'); 20 users::where('userUniqid', '=', $userUniqId) 21 ->update(array( 22 'password' => $encrypted 23 ) 24 ); 25 } 26 27 } else { 28 return Response::make('not mach password'); 29 } 30 31 }
としています。
このコントローラーの処理はうまくいくのですが、その後新しいパスワードでログインができない。。
laravelの場合、パスワードの再設定には何かやり方があるのでしょうか?
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/11/19 02:24
2014/11/19 02:56
2014/11/19 03:17
2014/11/19 09:46