Pada sesi kali ini saya akan melanjutkan penjelasan tentang cara membuat authentication di laravel sederhana part2. Di sini teman-teman juga bisa memanfaatkan seeder laravel, yang fungsi nya adalah untuk membuat, memasukan data di buat untuk testing aplikasi yang dibuat. Teman-teman buat file bernama UserTableSeeder.php di dalam folder app/seeds.
isikan code di bawah ini :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
< ?php class UserTableSeeder extends Seeder { public function run() { DB::table('users')->delete(); User::create(array( 'name' => 'Brian Abraham', 'username' => 'dumetschool', 'email' => 'dumetschool@gmail.com', 'password' => Hash::make('qwerty'), )); } } |
Kemudian buka file DatabaseSeeder.php yang berada di app/seeds ubah codenya menjadi seperti ini :
|
1 2 3 4 5 6 |
public function run() { Eloquent::unguard(); $this->call('UserTableSeeder'); } |
Selesai, silahkan bukan command prompt dan jalankan perintah berikut ini :
|
1 |
php artisan db:seed |
Selanjutnya buat file bernama UserController.php letakkan di dalam folder app/controllers dan isikan code di bawah ini :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
< ?php class UserController extends \BaseController { public function login() { return View::make('login'); } public function doLogin() { $rules = array( 'email' => 'required|email', 'password' => 'required|alphaNum|min:5' ); $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { return Redirect::to('login') ->withErrors($validator) ->withInput(Input::except('password')); } else { $userdata = array( 'email' => Input::get('email'), 'password' => Input::get('password') ); if (Auth::attempt($userdata)) { return Redirect::to('/'); } else { return Redirect::to('login'); } } } public function logout() { Auth::logout(); return Redirect::to('login'); } } |
Buat file lagi bernama login.blade.php letakkan di folder app/views dan isikan code ini :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
< !DOCTYPE html> < html lang="en"> < head> < title>Halaman Login< /title> {{ HTML::style('assets/css/bootstrap.min.css') }} {{ HTML::style('assets/css/sb-admin.css') }} {{ HTML::style('assets/font-awesome-4.1.0/css/font-awesome.min.css') }} < /head> < body> < div class="row"> < div class="col-lg-4 text-center"> < /div> < div class="col-lg-4 text-center"> < div class="panel panel-default"> < div class="panel-body"> {{ Form::open(array('url' => 'login')) }} < h1>Login< /h1> < p> {{ $errors->first('email') }} {{ $errors->first('password') }} < /p> < p> {{ Form::label('email', 'Email') }} {{ Form::text('email', Input::old('email'), array('class' => 'form-control','placeholder'=>'Masukkan Email')) }} < /p> < p> {{ Form::label('password', 'Password') }} {{ Form::password('password', array('class' => 'form-control','placeholder'=>'Masukkan Password')) }} < /p> < p>{{ Form::submit('Login', array('class' => 'form-control')) }}< /p> {{ Form::close() } < /div> < /div> < /div> < div class="col-lg-4 text-center"> < /div> < /div> < /body> < /html> |
Selanjutnya buka file routes.php yang berada dalam folder app. Dan tambahkan code dibawah ini :
|
1 2 3 4 5 6 7 8 9 |
Route::group(array('before' => 'auth'), function() { Route::get('logout', array('uses' => 'UserController@logout')); // Route yang ingin diproteksi taruh disini }); Route::get('login', array('uses' => 'UserController@login')); Route::post('login', array('uses' => 'UserController@doLogin')); |
Jika teman-teman mengikuti pembahasan ini dari awal, bisa tuliskan code seperti ini :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Route::group(array('before' => 'auth'), function() { Route::get('/', 'ProfileController@index'); Route::get('profile/{nama}', 'ProfileController@profile'); Route::get('profile/{id}/{nama}', 'ProfileController@profileview'); Route::get('profile/{nama?}', function($nama = null) { return $nama; }); Route::get('profile/{nama?}', function($nama = 'Andri') { return $nama; }); Route::get('formsederhana', 'ProfileController@formsederhana'); Route::post('formsederhana', 'ProfileController@postformsederhana'); Route::get('crud', 'CrudController@index'); Route::get('crud/create','CrudController@create'); Route::post('crud/create','CrudController@store'); Route::get('crud/edit/{id}', 'CrudController@edit'); Route::post('crud/update/{id}', array('as' => 'crud.update', 'uses' => 'CrudController@update')); Route::get('crud/destroy/{id}','CrudController@destroy'); Route::resource('ivud', 'IvudController'); Route::get('logout', array('uses' => 'UserController@logout')); }); Route::get('login', array('uses' => 'UserController@login')); Route::post('login', array('uses' => 'UserController@doLogin')); |
Yang terakhir pastikan ada file bernama User.php  didalam folder app/models. Sekarang coba jalankan dengan mengetikan url seperti ini.
|
1 2 3 |
http://localhost/projectlaravel/public/login Untuk username / email : dumetschool@gmail.com Password : qwerty |
Jika teman-teman mengikuti tutorial ini dari awal, tambahkan code di bawah ini dalam file sidebar.blade.php dalam folder app/views/includes.
|
1 2 3 |
< li> < a href="{{ URL::to('logout') }}">< i class="fa fa-fw fa-power-off">< /i> Logout< /a> < /li> |
Sampai di sini pembahasan cara membuat authentication di laravel sederhana, semoga bermanfaat.