Module Beginner 23 Oktober 2017

Tutorial Laravel 5.4 — Login, Register, Session, Validasi

Halo pada kali ini gue mau share tutorial cara

Tutorial Laravel 5.4 — Login, Register, Session, Validasi

Image Halo pada kali ini gue mau share tutorial cara

  • Login
  • Register
  • Validasi dengan Laravel 5.4.

Oke langsung aja cuss!

Pertama, pastiin lo udah ikutin tutorial templating gue, karena ini berlanjut dari sana.

Yuk pertama kita buat model dulu yang langsung integrasi sama migration si user.

php artisan make:model ModelUser —migrationKalo udah jangan lupa edit Model usernya agar seperti ini

migration -> create_model_users_table.php**, edit filenya jadi seperti dibawah increments('id'); $table->string('email',100)->unique(); $table->string('password'); $table->string('name'); $table->rememberToken(); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('users'); }}nb: line nomor 18 ditandain **unique **berarti setiap email yang sudah terisi tidak boleh sama dengan email yang akan dimasukkan kalo udah saatnya kamu memasukkan command dibawah **php artisan migrate**Kalo udah saatnya membuat file view baru berinama login.blade.php dan masukkan kode dibawah @extends('base')@section('content')

Anak IT - Login


@if(\Session::has('alert'))
{{Session::get('alert')}}
@endif @if(\Session::has('alert-success'))
{{Session::get('alert-success')}}
@endif
{{ csrf_field() }}
Register
@endsectionnb: line 10–19 digunakan untuk menampilkan hasil Session yang dibawa. setelah itu buat register.blade.php @extends('base')@section('content')

Anak IT - Register


@if ($errors->any())
    @foreach ($errors->all() as $error)
  • {{ $error }}
  • @endforeach
@endif
{{ csrf_field() }}
@endsectionnb: baris 10–18 digunakan untuk menampilkan hasil validasi yang akan kita gunakan nanti. jika sudah, saatnya sekarang buat halaman home untuk user. Copy dibawah ini @extends('base')@section('content')

Anak IT - Tutorial Login, Register, Validasi dengan Laravel 5.4

Hallo, {{Session::get('name')}}. Apakabar?

* Email kamu : {{Session::get('email')}}

* Status Login : {{Session::get('login')}}

Logout
@endsectionnb: line nomor 9 -12 bahwa kita akan mengambil 3 session tersebut. Sekarang saatnya buat controller user **php artisan make:controller User**Jika sudah sekarang saatnya masukkan fungsi semua ini kedalam Controller User with('alert','Kamu harus login dulu'); } else{ return view('user'); } } public function login(){ return view('login'); } public function loginPost(Request $request){ $email = $request->email; $password = $request->password; $data = ModelUser::where('email',$email)->first(); if($data){ //apakah email tersebut ada atau tidak if(Hash::check($password,$data->password)){ Session::put('name',$data->name); Session::put('email',$data->email); Session::put('login',TRUE); return redirect('home_user'); } else{ return redirect('login')->with('alert','Password atau Email, Salah !'); } } else{ return redirect('login')->with('alert','Password atau Email, Salah!'); } } public function logout(){ Session::flush(); return redirect('login')->with('alert','Kamu sudah logout'); } public function register(Request $request){ return view('register'); } public function registerPost(Request $request){ $this->validate($request, [ 'name' => 'required|min:4', 'email' => 'required|min:4|email|unique:users', 'password' => 'required', 'confirmation' => 'required|same:password', ]); $data = new ModelUser(); $data->name = $request->name; $data->email = $request->email; $data->password = bcrypt($request->password); $data->save(); return redirect('login')->with('alert-success','Kamu berhasil Register'); }}Sekarang saatnya ceramah panjang lebar. Perhatiin ya gue mau jelasin - fungsi index digunakan untuk masuk ke halaman dashboard user, disana ada tulisan **if(!Session::get(‘login’)** berarti jika kita TIDAK MEMILIKI SESSION LOGIN (Belum login) maka kita akan dilarikan ke halaman login dengan alert yang sudah disiapkan. Gak percaya? coba aja lari ke **localhost:8000/home_user** Kalo ga percaya, tapi tunggu dulu, kita kan belom set routesnya. - fungsi login, ya buat ke halaman login. - fungsi loginPost, fungsinya buat ngecek apakah email lu ada di database, kalo ada akan dilanjutkan dengan meriksa password lu sama gak sama yang di database, kalo iya, maka akan diset SESSION nama, email, sama status login. Baru abis itu dilariin ke halaman Dashboard user. Jika gagal ya dilariin ke login lagi dengan alert. - fungsi register, ya buat ke halaman register. - fungsi registerPost, fungsinya buat registrasi dan masukkin data kita. Namun disini kita memiliki fungsi yang digunakan untuk validasi. Yaitu dengan mengeset **$this->validate** blablabla. Jika kamu perhatikan terdapat 4 attribut validation yang juga kita pasang di views **register.blade.php**. Nah si validasi ini akan ngevalidasi data yang dimasukkin sama kita. Di bagian confirmation kita set **same:password**. Means confirmation harus sama kaya password yang ditulis. Kalo required, ya tau lah tandanya itu dibutuhkan. Kalo **min:4** berarti minimal 4 karakter.Validasi lanjutan baca [**disini**](https://laravel.com/docs/5.4/validation). - fungsi logout ya untuk ngehapus semua session yang ada dan lariin ke halaman index. Sekarang kita akan setting routesnya, tinggal tambahin fungsi dibawah ini kedalam routes -> web.php Route::*get*('/home_user', 'User@index');Route::*get*('/login', 'User@login');Route::*post*('/loginPost', 'User@loginPost');Route::*get*('/register', 'User@register');Route::*post*('/registerPost', 'User@registerPost');Route::*get*('/logout', 'User@logout');kalo udah tinggal dicoba deh ![Image](https://cdn-images-1.medium.com/max/800/1*uSSeio8cvz5d-HultwW0zg.png) ![Image](https://cdn-images-1.medium.com/max/800/1*0MDE88nxQURjK2c2cxgVIw.png) ![Image](https://cdn-images-1.medium.com/max/800/1*ZjD-bF9F23wWrKJPTyYbvw.png) ![Image](https://cdn-images-1.medium.com/max/800/1*uKgImpHDpkRTBlD1PECBeg.png) Oke sekian tutorial dari gue semoga bermanfaat. Terimakasih ;) --- *Artikel ini merupakan konten legacy dari blog Medium (Tahun 2017). Beberapa konsep atau sintaks mungkin sudah mengalami perubahan pada versi terbaru.*