• Tidak ada hasil yang ditemukan

User Authentication di Laravel ~3

Scaffolding ~4

1

1

1

1

Kita akan membuat fitur Authentication untuk proyek toko online ini menggunakan fitur bawaan Laravel. Buka terminal / cmd lalu ketik perintah-perintah berikut:

1. install laravel/ui package Mulai Laravel versi 6.0, semua authentication assets dijadikan terpisah dari core Laravel. Kita harus menginstallnya dengan perintah berikut:

composer require laravel/ui

2. buat authentication fitur / auth scaffold

php artisan ui vue --auth

Apabila berhasil dijalankan maka kamu akan melihat tampilan seperti di bawah ini:

3. compile file-file asset / javascript

npm install && npm run dev

Apabila berhasil dijalankan maka kamu akan melihat tampilan seperti di bawah ini:

Dengan menjalankan perintah-perintah di atas maka file-file yang diperlukan untuk Authentication termasuk halaman login akan digenerate.

Untuk menjalankan perintah npm kamu harus sudah menginstall NodeJS (sudah termasuk npm) di komputermu, apabila kamu tidak menggunakan docker (laradock) kamu cukup ikuti petunjuk instalasi di situs resminya yaitu di https://nodejs.org

Apabila kamu menggunakan laradock, ikuti langkah-langkah berikut:

1. buka file .env yang ada di folder laradock (bukan folder project laravel nya)

2. cari dan ubah nilai WORKSPACE_INSTALL_NODE menjadi true, lalu simpan file .env tersebut.

3. build ulang container workspace dengan perintah docker-compose build workspace

Selanjutnya kita cukup jalankan perintah artisan migrate yang akan menjalaknkan dua file migrations yang terkait dengan Authentication yaitu file yang berakhiran dengan nama create_users_table.php dan create_password_resets_table.php. File ini sudah ada sejak pertama kali kita membuat project Laravel baru.

Langsung saja kita jalankan migration yang akan mengeksekusi dua file tadi. Kembali buka terminal / cmd mu lalu ketik

php artisan migrate

1 2 3 4

Jika berhasil dijalankan maka akan muncul tampilan seperti di bawah ini di terminal / cmd

Apabila perintah tersebut berhasil dijalankan, maka kini aplikasimu sudah memiliki fitur user authentication termasuk halaman login, register dan reset password.

Perhatian! Apabila ketika menjalankan perintah php artisan migrate kamu mengalami error terkait key too long, itu artinya kamu harus sedikit menyesuaikan settingan Schema builder. Untuk melakukannya buka file app/Providers/AppServiceProvider.php lalu tambahkan kode Schema::defaultStringLength(191); pada method boot() seperti ini

public function boot() {

Schema::defaultStringLength(191);

}

Dengan perintah di atas kini kamu bisa melakukan registrasi dengan membuka di url http://larashop.test/register. Setelah kamu submit, kini kamu bisa mencoba untuk melakukan Authentication dengan cara login ke aplikasi pada url http://larashop.test/login.

Pahami bahwa yang dimaksud http://larashop.test Bagi pengguna XAMPP adalah:

http://localhost/larashop/public atau

http://localhost/larashop bila sudah dikonfigurasi untuk menghilangkan public di url

Buka http://larashop.test maka kamu akan mendapatkan dua menu baru di atas seperti ini tampilannya:

Taraaa, semudah itu untuk membuat user authentication di Laravel, ga sampe lima menit langsung jadi. Tapi mungkin kamu bertanya bagaimana keajaiban ini terjadi? Tenang, ini bukanlah magic, untuk itu mari kita

1

bahas lebih detail apa yang terjadi setelah kita menjalankan perintah php artisan ui vue --auth.

Supaya kita paham cara kerja Authenticationnya terutama jika kita ingin memodifikasi Authenticationnya.

Ingat, setiap fitur yang ada di Laravel sebetulnya hanyalah kombinasi antara MVC, model view controller. Apa yang dilakukan oleh perintah di atas hanyalah membuatkan komponen MVC tersebut untukmu. Perintah di atas akan mengenerate file-file / kode berikut ini

1. File views antara lain:

resources/views/layouts/app.blade.php;

resources/views/auth/passwords/email.blade.php; resources/views/auth/passwords/reset.blade.php;

resources/views/auth/login.blade.php;

resources/views/auth/register.blade.php;

resources/views/auth/home.blade.php. 2. Sebuah controller yaitu HomeController.php

3. Kode routing untuk Authentication pada file routes/web.php yaitu

Auth::routes();

Apa saja fungsi-fungsi dari file yang digenerate tadi?

File / Kode Penjelasan

resources/views/layouts/app.blade.php

Merupakan file layout view yang dapat digunakan oleh view lainnya. Pada layout ini, terdapat sebuah kode untuk

menghasilkan top navigation atau navigasi atas yang akan menampilkan link login dan register jika pengguna belum login.

Navigasi ini akan berubah menjadi nama lengkap pengguna dan link logout jika pengguna sudah login ke aplikasi.

resources/views/auth/passwords/email.blade.php

Merupakan view yang digunakan untuk menampilkan form email saat forgot password.

resources/views/auth/login.blade.php Merupakan view yang digunakan untuk menampilkan form login.

resources/views/auth/register.blade.php Merupakan view yang digunakan untuk menampilkan form registrasi pengguna.

resources/views/auth/home.blade.php

Merupakan view yang digunakan sebagai contoh halaman khusus pengguna yang sudah login ke aplikasi.

Kode Auth::routes(); pada file routes/web.php

Digunakan untuk menyediakan route user authentication antara lain:

/login,/register,/password/reset.

File / Kode Penjelasan

app/Http/Controllers/HomeController.php

Berisi sebuah action index untuk menampilkan view home. Controller ini menggunakan middleware auth sehingga hanya bisa diakses oleh user yang sudah login ke aplikasi

Selain kode yang digenerate di atas, proses user authentication juga membutuhkan file-file yang sudah ada sejak pertama kali kita membuat project Laravel baru, yaitu:

File / kode Penjelasan

app/User.php

Merupakan model user, di sini kita bisa mengubah

konfigurasi dari model user aplikasi.

app/Http/Controllers/Auth/ForgotPasswordController.php

Merupakan controller untuk mengelola request berkaitan dengan lupa password.

app/Http/Controllers/Auth/LoginController.php

Merupakan controller untuk mengelola request berkaitan dengan login pengguna

app/Http/Controllers/Auth/RegisterController.php

Merupakan controller untuk mengelola request berkaitan dengan registrasi pengguna

app/Http/Controllers/Auth/ResetPasswordController.php

Merupakan controller untuk mengelola request berkaitan dengan reset password

xxxxxx_create_users_table.php Migration untuk membuat tabel users dan strukturnya

xxxxx_create_password_resets_table.php

Migration untuk membuat tabel password_resets dan strukturnya.