Authentication on laravel libraries can indeed be called a poweful. With easy implementation we are presented with the availability of complete auth configuration. The authentication configuration file is located at app/config/auth.php
, which contains several well documented options for tweaking the behavior of the authentication facilities.
With this literature, we can make a variety of implementations. such as storing passwords, authenticating users, protecting the routes, up reminders and reset passwords.
But in the documentation laravel there a way to change the password for the user or admin. therefore, in this tutorial I will give an example of how to change the password on laravel 4 using the auth library.
create a route to the change password page
Route::any('user/changepassword', 'Meniqa\\Employee\\Controllers\\UserController@changePassword');
on the controller class for a function to display the change password page then pass it to view page
public function changePassword() { if (Request::isMethod('post')){ }else{ $this->layout->content = View::make('employee::user.changePassword'); } }
@section('content') <div class="row"> <div class="col-lg-12"> <section class="panel"> <header class="panel-heading"> <a href="{{ url('admin/dashboard') }}"><i class="fa fa-home"></i></a> / Ubah Sandi </header> </section> </div> </div> @include('layouts.backend.messageAlert') <div class="row"> <div class="col-lg-12"> <section class="panel"> <header class="panel-heading"> Ubah Sandi </header> <div class="panel-body"> {{ Form::open(array('url' => Request::url(), 'class' => 'form-horizontal tasi-form', 'role' => 'form', 'method'=>'post')) }} <div class="form-group"> <label for="last_password" class="col-lg-2 col-sm-2 control-label">Sandi lama</label> <div class="col-md-3 col-xs-11"> <input class="form-control form-control-inline input-medium" type="password" value="" name="last_password" /> </div> </div> <div class="form-group"> <label for="new_password" class="col-lg-2 col-sm-2 control-label">Sandi Baru</label> <div class="col-md-3 col-xs-11"> <input class="form-control form-control-inline input-medium" type="password" value="" name="new_password" /> </div> </div> <div class="form-group"> <label for="verify_password" class="col-lg-2 col-sm-2 control-label">Konfirmasi Sandi Baru</label> <div class="col-md-3 col-xs-11"> <input class="form-control form-control-inline input-medium" type="password" value="" name="verify_password" /> </div> </div> <div class="form-group"> <div class="col-lg-offset-2 col-lg-10"> <button type="submit" class="btn btn-success">Submit</button> <button type="reset" class="btn btn-default">Reset</button> </div> </div> {{ Form::close() }} </div> </section> </div> </div> @stop
update the class controller to handle post action from view
public function changePassword() { if (Request::isMethod('post')){ $rules = array( 'last_password' => 'required', 'new_password' => 'required', 'verify_password' => 'required|same:new_password', ); $attributes = array( 'last_password' => 'Sandi Lama', 'new_password' => 'Sandi Baru', 'verify_password' => 'Konfirmasi Sandi', ); $validator = Validator::make(Input::all(), $rules, array(), $attributes); if($validator->fails()){ return Redirect::back()->withErrors($validator); }else{ //check last password is true $userName = Auth::user()->user_name; $userdata = array( 'user_name' => $userName, 'password' => Input::get('last_password') ); if(Auth::validate($userdata)){ $user = WUser::find(Auth::user()->id_user); $user->passnew = Hash::make(Input::get('new_password')); $user->save(); Auth::logout(); return Redirect::to('/')->with('flashMessage', 'Ubah password berhasil. Silahkan login kembali menggunakan password baru'); }else{ return Redirect::back()->with('flashErrors', 'salah memasukkan password lama')->withInput(); } } }else{ $this->layout->content = View::make('employee::user.changePassword'); } }
nama namespace nya Meniqa 😀
hasuk konangan.. -_-