Laravel Login dan Laravel Register – Episode 6

1. Persiapan Database

Laravel membutuhkan tabel users untuk menyimpan data pengguna, dengan kolom seperti name, email, password, dll. Jika belum ada, jalankan migrasi default untuk tabel users:

bashCopy codephp artisan migrate

2. Membuat Controller AuthController

Anda perlu membuat controller untuk menangani logika autentikasi (login dan register).

  • Buat Controller:bashCopy codephp artisan make:controller AuthController
  • Definisikan Metode di Controller:Metode Register: Menangani pendaftaran pengguna baru dan enkripsi password.phpCopy codepublic function showRegisterForm() { return view('auth.register'); } public function register(Request $request) { // Validasi input $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users,email', 'password' => 'required|string|min:8|confirmed', ]); // Membuat pengguna baru $user = User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => bcrypt($request->password), // Enkripsi password ]); // Login setelah registrasi auth()->login($user); return redirect()->route('home'); // Ganti dengan rute tujuan setelah registrasi } Metode Login: Menangani autentikasi pengguna.phpCopy codepublic function showLoginForm() { return view('auth.login'); } public function login(Request $request) { // Validasi input login $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { return redirect()->route('home'); // Ganti dengan rute tujuan setelah login } return back()->withErrors([ 'email' => 'These credentials do not match our records.', ]); } Metode Logout: Menangani logout pengguna.phpCopy codepublic function logout() { Auth::logout(); return redirect()->route('login'); // Kembali ke halaman login }

3. Membuat Rute

Definisikan rute di routes/web.php untuk menangani akses ke form login, register, dan proses autentikasi.

  • Rute Register dan Login:phpCopy code// Halaman Register Route::get('register', [AuthController::class, 'showRegisterForm']); Route::post('register', [AuthController::class, 'register']); // Halaman Login Route::get('login', [AuthController::class, 'showLoginForm']); Route::post('login', [AuthController::class, 'login']); // Logout Route::post('logout', [AuthController::class, 'logout']);

4. Membuat Form Login dan Register

  • Form Register (resources/views/auth/register.blade.php):bladeCopy code<form method="POST" action="{{ route('register') }}"> @csrf <input type="text" name="name" placeholder="Name" required> <input type="email" name="email" placeholder="Email" required> <input type="password" name="password" placeholder="Password" required> <input type="password" name="password_confirmation" placeholder="Confirm Password" required> <button type="submit">Register</button> </form>
  • Form Login (resources/views/auth/login.blade.php):bladeCopy code<form method="POST" action="{{ route('login') }}"> @csrf <input type="email" name="email" placeholder="Email" required> <input type="password" name="password" placeholder="Password" required> <button type="submit">Login</button> </form>

5. Proteksi Rute yang Memerlukan Autentikasi

Untuk melindungi rute yang memerlukan pengguna terautentikasi, Anda dapat menggunakan middleware auth.

phpCopy codeRoute::get('/dashboard', [DashboardController::class, 'index'])->middleware('auth');

6. Pengelolaan Sesi

Laravel secara otomatis mengelola sesi pengguna setelah login, dan sesi ini akan bertahan hingga pengguna melakukan logout dengan memanggil Auth::logout().

7. Menambahkan Validasi

Validasi input untuk form login dan register menggunakan Request Laravel untuk memastikan data yang diterima sesuai dengan aturan yang ditentukan.

phpCopy code$request->validate([
    'name' => 'required|string|max:255',
    'email' => 'required|email|unique:users,email',
    'password' => 'required|string|min:8|confirmed',
]);

Ringkasan:

  • Register: Menangani pendaftaran dengan validasi dan penyimpanan pengguna, serta login otomatis setelah registrasi.
  • Login: Memverifikasi kredensial pengguna dan menjaga sesi aktif menggunakan Auth::attempt().
  • Logout: Mengakhiri sesi pengguna dengan Auth::logout().
  • Proteksi Rute: Gunakan middleware auth untuk melindungi halaman yang memerlukan autentikasi.

Referensi Lainnya :

  • https://www.ayongoding.com/membuat-login-dan-register-laravel/?authuser=0
  • https://www.ayongoding.com/membuat-register-user-laravel/?authuser=0
  • https://medium.com/@asmaraervin/tutorial-membuat-auth-di-laravel-9-308c544196c9?authuser=0
Tags :

Leave a Reply

Your email address will not be published. Required fields are marked *

seventeen + nineteen =

Tutorial Terpopuler

Tutorial Pilihan

Tentang Gurututorku

Gurututorku adalah sebuah kursus online maupun offline yang menyediakan berbagai macam tutorial tentang pemrograman, design, dan multimedia serta artikel teknologi yang tentunya bisa dinikmati dan dipelajari oleh semua orang yang baru ingin belajar dunia IT.

© 2024 – Gurututorku.com | Learning today success tomorrow.