Laravel實現修改密碼操作


在LoginController.php中加入reset代碼:
引入驗證庫:
use Illuminate\Support\Facades\Validator;

控制器代碼如下:
數據庫更新使用$user->update();,去除updated_at需要在Model中加入public $timestamps=false;

// 修改密碼
    public function reset(){
      if ($input=Input::all()) {
        $rules = [
          'origin_pass'=>'required',
          'new_pass'=>'required|between:6,20|confirmed',
        ];
        $msg = [
          'required'=>'密碼不能為空!',
          'new_pass.between'=>'密碼必須在6~20位之間!',
          'new_pass.confirmed'=>'新密碼與確認密碼不一致!',
        ];
        $validator = Validator::make($input,$rules,$msg);
        if ($validator->passes()) {
          $user = User::where('username',session()->get('user')->username)->first();
          if (!$user || $user&&Crypt::decrypt($user->password)!=$input['origin_pass']) {
            return back()->withErrors('原密碼錯誤!');
          }
          $user->password = Crypt::encrypt($input['new_pass']);
          $user->update();  // 更新密碼
          session(['user'=>null]);
          return redirect('admin/login');
        }else{
          return back()->withErrors($validator);
        }
      } else {
        return view('admin/reset');
      }

    }

前端頁面顯示:

<div class="card card-small mb-4">
                  <ul class="list-group list-group-flush">
                    <li class="list-group-item p-3">
                      @if (count($errors)>0)
                        {{ $errors->first() }}
                      @else
                        <strong class="text-muted d-block mb-2">Forms</strong>
                      @endif
                      <form action="" method="post">
                        {{ csrf_field() }}
                        <div class="form-group">
                          <label for="origin_pass">原密碼</label>
                          <input type="password" class="form-control" name="origin_pass" id="origin_pass" placeholder="">
                        </div>
                        <div class="form-group">
                          <label for="new_pass">新密碼</label>
                          <input type="password" class="form-control" name="new_pass" id="new_pass" placeholder="">
                        </div>
                        <div class="form-group">
                          <label for="repeat_pass">確認密碼</label>
                          <input type="password" class="form-control" name="new_pass_confirmation" id="repeat_pass" placeholder="">
                        </div>
                        <button type="submit" class="btn btn-primary btn-lg btn-block">提交</button>
                        <button type="" class="btn btn-default btn-lg btn-block">返回</button>
                      </form>
                    </li>
                  </ul>
                </div>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM