Cara Membuat Form Login dan Register Beserta Logout untuk Laravel

Laravel, salah satu framework PHP yang paling banyak digunakan, menawarkan ekosistem yang kaya dan komunitas yang aktif. Salah satu aspek penting dalam pengembangan aplikasi Laravel adalah pengelolaan autentikasi pengguna.

Fitur login, registrasi, dan logout tidak hanya memungkinkan pengguna untuk mengakses aplikasi, tetapi juga menyediakan mekanisme untuk mengontrol akses ke berbagai sumber daya.

Dengan memanfaatkan fitur autentikasi bawaan Laravel, kita dapat dengan mudah mengimplementasikan sistem login yang aman dan efisien. Artikel ini akan memandu Anda melalui proses pembuatan form login, registrasi, dan logout.

Persiapan Sebelum Memulai Project Laravel

Sebelum melangkah ke tutorial laravel, berikut beberapa tahapan persiapan yang harus Anda pahami:

1. Memastikan Laravel Terinstal

Sebelum memulai, pastikan Laravel sudah terinstal dengan benar pada sistem. Anda bisa mengeceknya dengan menjalankan perintah berikut di terminal atau command prompt:

laravel –version

Jika Laravel terinstal, maka akan muncul versi Laravel yang terpasang.

2. Konfigurasi Environment Laravel

Kemudian, Anda harus melakukan konfigurasi berikut:

  • Instalasi Composer: Composer adalah tool untuk mengelola dependensi di PHP, termasuk Laravel. Pastikan Composer sudah terinstal. Anda bisa menginstalnya dengan mengikuti petunjuk resmi.
  • Pengaturan Database: Edit file .env pada root project Laravel. Isilah konfigurasi database Anda di sana, seperti nama database, username, password, dan host. Laravel akan menggunakan informasi ini untuk terhubung ke database.

 

3. Pembuatan Project Laravel Baru

Untuk membuat project Laravel baru, gunakan perintah berikut:

laravel new nama_project

Ganti nama_project dengan nama yang Anda inginkan untuk project Anda.

4. Memahami Struktur Folder Laravel

Struktur folder Laravel dirancang dengan baik untuk memudahkan pengembangan. Beberapa folder yang relevan untuk tutorial ini adalah:

  • Http: Berisi controllers, middleware, requests, dan lain-lain yang berhubungan dengan HTTP requests.
  • Models: Berisi model-model data yang merepresentasikan tabel di database.
  • config: Berisi file konfigurasi untuk berbagai aspek aplikasi, seperti database, aplikasi, dan caching.
  • database: Berisi migrasi dan seeders untuk mengelola database.
  • public: Folder publik yang dapat diakses oleh web server.
  • views: Berisi template blade untuk tampilan halaman.
  • routes: Berisi definisi rute untuk aplikasi.

 

Baca Juga: Tutorial Cara Membuat Project Laravel: Belajar Laravel untuk Pemula 

Membuat Form Register Laravel

Inilah tahapan yang perlu dilakukan saat membuat form register di laravel:

1. Membuat Route untuk Form Registrasi

Route adalah “peta” yang menghubungkan URL dengan fungsi tertentu dalam aplikasi Laravel. Untuk membuat route menuju form registrasi, kita bisa menggunakan method get pada kelas Route.

// routes/web.php

Route::get(‘/register’, ‘AuthController@showRegistrationForm’);

Penjelasan:

  • /register: URL yang akan mengarah ke form registrasi.
  • AuthController@showRegistrationForm: Memanggil method showRegistrationForm pada controller AuthController untuk menampilkan view form registrasi.

2. Membuat Controller untuk Registrasi

Controller adalah kelas yang berisi logika untuk memproses permintaan HTTP. Kita akan membuat controller bernama AuthController untuk menangani proses registrasi.

// app/Http/Controllers/AuthController.php

<?php

namespace AppHttpControllers;

use IlluminateHttpRequest;

use AppModelsUser; // Pastikan model User sudah dibuat

class AuthController extends Controller

{

    public function showRegistrationForm()

    {

        return view(‘auth.register’);

    }

 

    public function register(Request $request)

    {

        // Validasi input

        $request->validate([

            ‘name’ => ‘required|string|max:255’,

            ’email’ => ‘required|string|email|max:255|unique:users’,

            ‘password’ => ‘required|string|min:8|confirmed’,

        ]);

        // Simpan data pengguna baru

        User::create([

            ‘name’ => $request->name,

            ’email’ => $request->email,

            ‘password’ => bcrypt($request->password),

        ]);

        // Redirect setelah berhasil registrasi

        return redirect(‘/login’)->with(‘success’, ‘Registrasi berhasil!’);

    }

}

 

Penjelasan:

  • showRegistrationForm: Method ini hanya mengembalikan view form registrasi.
  • register: Method ini menerima request dari form, melakukan validasi, dan menyimpan data pengguna baru ke database.

3. Membuat View untuk Form Registrasi

View adalah template yang digunakan untuk menampilkan data ke pengguna. Kita akan membuat view untuk form registrasi di folder resources/views/auth/register.blade.php.

<!DOCTYPE html>

<html>

<head>

    <title>Registrasi</title>

</head>

<body>

    <h1>Registrasi</h1>

    <form method=”POST” action=”{{ route(‘register’) }}”>

        @csrf

        <input type=”text” name=”name” placeholder=”Nama”>

        <input type=”email” name=”email” placeholder=”Email”>

        <input type=”password” name=”password” placeholder=”Password”>

        <input type=”password” name=”password_confirmation” placeholder=”Konfirmasi Password”>

        <button type=”submit”>Register</button>

    </form>

</body>

</html>

 

Penjelasan:

  • @csrf: Token CSRF untuk mencegah serangan cross-site request forgery.
  • Elemen form lainnya: Input untuk nama, email, dan password.

4. Validasi Form Registrasi

Validasi input sangat penting untuk memastikan data yang dimasukkan oleh pengguna valid dan aman. Laravel menyediakan fitur validasi bawaan yang mudah digunakan.

Penjelasan validasi dalam kode controller:

  • $request->validate: Method ini akan memvalidasi input berdasarkan aturan yang ditentukan.
  • Aturan validasi: required, string, email, max, min, unique, confirmed.

Cara Membuat Form Login Laravel

Cara berikut ini akan menampilkan tahapan dalam membuat form login: 

1. Membuat Route Login

Sama seperti pada form registrasi, kita akan membuat route untuk mengarahkan pengguna ke halaman login. Tambahkan rute berikut ke file routes/web.php Anda:

Route::get(‘/login’, ‘AuthController@showLoginForm’);

Rute ini akan memanggil method showLoginForm pada controller AuthController untuk menampilkan view form login.

2. Membuat Controller untuk Login

Buatlah controller AuthController (jika belum ada) dan tambahkan method showLoginForm dan login:

<?php

namespace AppHttpControllers;

use IlluminateHttpRequest;

use IlluminateSupportFacadesAuth;

class AuthController extends Controller

{

    public function showLoginForm()

    {

        return view(‘auth.login’);

    }

 

    public function login(Request $request)

    {

        $credentials = $request->validate([

            ’email’ => ‘required|email’,

            ‘password’ => ‘required’,

        ]);

 

        if (Auth::attempt($credentials)) {

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

            return redirect()->intended(‘/dashboard’); // Ganti ‘/dashboard’ dengan halaman tujuan setelah login

        }

 

        return back()->withErrors([

            ’email’ => ‘The provided credentials do not match our records.’,

        ]);

    }

}

 

Penjelasan:

showLoginForm: Method ini hanya mengembalikan view form login.

login: Method ini:

  • Menerima data dari form login dan melakukan validasi.
  • Menggunakan Auth::attempt() untuk mencoba melakukan autentikasi dengan kredensial yang diberikan.
  • Jika berhasil, akan meregenerasi session dan mengarahkan pengguna ke halaman dashboard.
  • Jika gagal, akan mengarahkan pengguna kembali ke form login dengan pesan error.

3. Membuat View untuk Form Login

Buat file resources/views/auth/login.blade.php:

<!DOCTYPE html>

<html>

<head>

    <title>Login</title>

</head>

<body>

    <h1>Login</h1>

    <form method=”POST” action=”{{ route(‘login’) }}”>

        @csrf

        <input type=”email” name=”email” placeholder=”Email”>

        <input type=”password” name=”password” placeholder=”Password”>

        <button type=”submit”>Login</button>

    </form>

</body>

</html>

 

Penjelasan:

  • @csrf: Token CSRF untuk keamanan.
  • Elemen form lainnya: Input untuk email dan password.

Cara Membuat Fitur Logout Laravel

1. Membuat Route Logout

Untuk membuat route logout, tambahkan rute berikut ke file routes/web.php Anda:

Route::post(‘/logout’, ‘AuthController@logout’);

Rute ini akan memanggil method logout pada controller AuthController ketika pengguna mengirimkan permintaan logout.

2. Membuat Fungsi Logout di Controller

Pada controller AuthController, tambahkan method logout:

<?php

namespace AppHttpControllers;

use IlluminateHttpRequest;

use IlluminateSupportFacadesAuth;

class AuthController extends Controller

{

    // … (method-method lain)

 

    public function logout(Request $request)

    {

        Auth::logout();

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

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

        return redirect(‘/’); // Ganti ‘/’ dengan halaman home Anda

    }

}

 

Penjelasan:

  • Auth::logout(): Fungsi ini akan menghapus informasi autentikasi pengguna dari session.
  • $request->session()->invalidate(): Melakukan invalidasi seluruh session.
  • $request->session()->regenerateToken(): Meregenerasi token CSRF untuk meningkatkan keamanan.

3. Pengujian Fungsi Logout

Untuk menguji fungsi logout, Anda bisa:

  1. Buat tombol logout: Pada view yang ingin Anda tambahkan tombol logout, tambahkan form dengan method POST dan action yang mengarah ke route logout:
  2. Akses halaman: Setelah login, klik tombol logout. Anda seharusnya akan diarahkan ke halaman home atau halaman login.
  3. Cek session: Gunakan browser developer tools untuk memeriksa apakah session pengguna telah dihapus.

Penggunaan Middleware untuk Keamanan

  • Penjelasan tentang middleware dalam Laravel dan cara menggunakannya untuk melindungi route login dan register.
  • Penggunaan middleware auth untuk memastikan pengguna yang terautentikasi dapat mengakses halaman tertentu (contoh: route untuk halaman dashboard atau halaman profile).
  • Menambahkan middleware di route file dan controller.

Menangani Error dan Validasi 

Menangani error dan validasi dapat dilakukan dengan menggunakan 2 cara umum berikut ini:

1. Memahami Validasi Laravel

Laravel memiliki sistem validasi bawaan yang sangat kuat. Kita bisa menggunakannya untuk memvalidasi data yang dikirimkan dari form sebelum disimpan ke database. Validasi ini akan membantu mencegah kesalahan data dan meningkatkan keamanan aplikasi.

2. Menampilkan Pesan Kesalahan

Untuk menampilkan pesan kesalahan kepada pengguna, kita bisa memanfaatkan fitur session di Laravel. Pesan kesalahan akan disimpan dalam session dan kemudian ditampilkan pada view.

Fitur Login dan Register Serta Logout Sering Digunakan pada Project Laravel

Dengan memahami dasar-dasar pembuatan fitur login, register, dan logout pada Laravel, Anda telah membuka pintu untuk membangun aplikasi web yang lebih interaktif dan aman.

Ingin memperdalam pengetahuan Anda tentang Laravel dan membangun aplikasi yang lebih kompleks? Ikuti Kursus Bootcamp Laravel di Course-Net dan pelajari langsung dari coach praktisi berpengalaman.

Nikmati keuntungan seperti re-coaching gratis seumur hidup, pembelajaran berbasis pengalaman, dan cicilan hingga 18x. Dengan dukungan dari lebih dari 100.000 alumni dan 472+ klien korporasi, serta rating 4.9 di Google Review, Anda dapat yakin akan kualitas pembelajaran yang kami berikan.

Belajar IT di Course-Net, Sampai bisa!

Masih Ga percaya ? Di Course-Net kamu Belajar Langsung Oleh Coach Praktisi Aktif Berpengalaman

Share: