Pada bulan september lalu Laravel versi 6 resmi telah release. Berbagai penyederhanaanpun dilakukan termasuk diantaranya array dan string helper kini menggunakan class dari Illuminate\Support\Arr dan Illuminate\Support\Str, dan satu lagi penyederhanaan yang dilakukan adalah dengan meniadakan auth alias dilepas dari package utama Laravel.

Ini berdasarkan pengalaman pribadi ketika nyoba Laravel 6 itu ingin membuat auth tau-tau command untuk membuat auth-nya tidak ada :v. Jadi setelah baca-baca ternyata package auth dibuat terpisah dengan package master Laravel saat ini.

Dengan kata lain kalian harus menginstall package lagi agar bisa menggunakan command php artisan make:auth lagi. Nah disini saya akan berikan tutorialnya tentang bagaimana membuat auth dengan cepat di Laravel 6 dan tidak hanya itu bagi kalian yang tidak ingin menginstall package lagi kalian bisa buat auth secara manual.


Membuat Auth Dengan di Laravel 6

Persiapan

Ok pertama-tama yang kalian harus siapkan adalah fresh instalasi dari laravel-nya bagi yang belum install kalian bisa menggunakan perintah dibawah ini. Oh iyaa sebelum install pastikan versi php kalian mininal versi 7.2 ya.

composer create-project --prefer-dist laravel/laravel lara-auth

Folder lara-auth bisa kalian ganti jika mau.

Nah bagi kalian yang sudah punya laravel versi 5.8 kalian bisa langsung upgrade, cara upgradenya pun cukup mudah kalian tinggal buka file composer.json lalu ubah depedency laravel/framework ke ^6.0 setelah itu save kemudian jalankan composer update di terminal atau command line.

Oh iyaa jangan lupa siapkan koneksi databasenya dulu lalu kemudian migrate.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=lara6
DB_USERNAME=root
DB_PASSWORD=root

Ubah di file .env sesuaikan dengan konfigurasi kalian lalu langsung dimigrate.

php artisan migrate

 

Install Package laravel/ui

Seperti yang saya sudah bilang diawal kita perlu package tambahan agar dapat menggunakan perintah php artisan make:auth agar mempercepat proses pembuatan sistem autentikasi ini, perintahnya adalah seperti ini .

composer require laravel/ui --dev

Setelah installasi selesai kalian bisa jalankan perintah ini untuk mempersiapkan file view, route serta controller yang diperlukan.

php artisan ui vue --auth

Kemudian langkah yang terakhir adalah men-scaffold auth-nya dengan perintah.

php artisan ui:auth

Jika sudah kalian bisa jalankan development server laravel dan tampilan halaman utamanya akan terlihat seperti berikut.

Untuk fungsi-fungsinya kurang lebih sama seperti laravel sebelumnya yaitu ada login, register dan forget password.

Ok itu tadi cara membuat auth dengan menggunakan perintah di terminal, sekarang saya bahas cara membuat auth secara manual tanpa install package tambahan.

 

Membuat Auth Secara Manual

Ok bagi yang tidak ingin repot install package tambahan hanya untuk membuat auth kalian bisa ikuti langkah ini. Salah satu kelebihan dari cara manual seperti ini adalah dengan cara ini tidak ada batasan versi Laravel yang digunakan.

Jadi kalian bisa gunakan instalasi Laravel yang kalian miliki sekarang, tapi saya pribadi rekomendasikan versi 5.5 keatas.

Persiapan

Ok untuk persiapan kalian hanya perlu menyiapkan view untuk login dan registernya saja sementara untuk controllernya sudah disediakan oleh Laravel tinggal kita sambungkan dengan view yang kita buat nantinya.

Contoh view login seperti ini.

<form action="{{ url('/login') }}" method="post">
@csrf
Email <input type="text" name="email" value="{{ old('email') }}">
@if ($errors->has('email'))
    <strong style="color: red">{{ $errors->first('email') }}</strong>
@endif
Password <input type="password" name="password">
@if ($errors->has('password'))
    <strong style="color: red">{{ $errors->first('password') }}</strong>
@endif
<button type="submit">Login</button>
</form>

Nanti kalian bikin style-nya sendiri ya kalau ga betah liat tampilannya :).

Dan view register kurang lebih sama.

<form action="{{ url('/register') }}" method="post">
@csrf
Name <input type="text" name="name" value="{{ old('name') }}">
@if ($errors->has('email'))
    <strong style="color: red">{{ $errors->first('email') }}</strong>
@endif
Email <input type="text" name="email" value="{{ old('email') }}">
@if ($errors->has('email'))
    <strong style="color: red">{{ $errors->first('email') }}</strong>
@endif
Password <input type="password" name="password">
Re-type Password <input type="password" name="password_confirmation">
@if ($errors->has('password'))
    <strong style="color: red">{{ $errors->first('password') }}</strong>
@endif
<button type="submit">Login</button>
</form>

 

Routing

Untuk routing kalian siapkan 5 route berikut masing-masing untuk 2 route masing-masing untuk login dan register dan yang tak kalah penting adalah logout-nya.

Route::get('/login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('/login', 'Auth\LoginController@login');
Route::post('/logout', 'Auth\LoginController@logout');
Route::get('/register', 'Auth\RegisterController@showRegisterForm');
Route::post('/register', 'Auth\RegisterController@register')->name('register');

Jika sudah kalian bisa buka file LoginController.php pada app > Http > Controllers > Auth dan tambahkan method showLoginForm seperti ini.

public function showLoginForm()
{
     return view('auth.login');
}

Nah ini sesuaikan dengan view yang sudah kalian siapkan diawal dan ini saya asumsikan view kalian letakan di folder resources > view > auth dengan nama login.blade.php.

Masih di controller yang sama tambahkan satu lagi method yaitu logout.

public function logout(\Illuminate\Http\Request $request)
{
    $this->guard()->logout();

    $request->session()->invalidate();

    return redirect('/home');
}

Sama seperti login diatas tambahkan juga method showRegisterForm pada file RegisterController.php.

public function showRegisterForm()
{
     return view('auth.register');
}

Dan ada sedikit modifikasi di view welcome.blade.php, karena ini akan menjadi homenya oleh karena itu kita harus tambahkan tombol utk logout nantinya.

<form action="{{ url('/logout') }}" method="post">
    @csrf
    <button type="submit">Logout</button>
</form>

Jika semua langkah sudah selesai sekarang tinggal eksekusi saja, kalian jalankan Laravel development server di artisan dan kalian bisa explore sendiri.

 

Ok mungkin sekian tutorial yang bisa saya bagikan dan seperti biasa jika yang ingin diskusi atau bertanya langsung dikolom komen ya :)
Untuk kalian yg lagi cari monitor atau aksesoris seperti keyboard, mousepad dan mouse bisa lihat rekomendasi saya di tokopedia ya.