m.techreview.click
  • Website
  • Indonesia
  • Laravel
  • Hosting
  • AI
  • Development
No Result
View All Result
m.techreview.click
  • Website
  • Indonesia
  • Laravel
  • Hosting
  • AI
  • Development
No Result
View All Result
m.techreview.click
No Result
View All Result
Home Authentication

Laravel Authentication: Membuat Sistem Login dan Register Sederhana

venus by venus
June 16, 2025
in Authentication, Development, Laravel, Sederhana, Sistem
0
Share on FacebookShare on Twitter

Selamat datang! Di artikel ini, kita akan membahas secara mendalam tentang Laravel Authentication: Membuat Sistem Login dan Register Sederhana. Laravel, framework PHP yang terkenal karena kemudahan dan kelengkapan fiturnya, menyediakan mekanisme otentikasi yang kuat dan mudah digunakan. Kita akan belajar bagaimana membangun sistem login dan register sederhana dari awal, langkah demi langkah, memanfaatkan fitur bawaan Laravel dan beberapa penyesuaian yang sering dibutuhkan.

1. Mengapa Memilih Laravel untuk Sistem Otentikasi?

Sebelum kita menyelami kode, mari kita pahami mengapa Laravel menjadi pilihan populer untuk membangun sistem otentikasi.

  • Kemudahan Penggunaan: Laravel menyediakan artisan commands yang memudahkan proses setup dan konfigurasi.
  • Keamanan: Laravel telah dirancang dengan mempertimbangkan keamanan. Fitur-fitur seperti hashing password, CSRF protection, dan XSS prevention sudah tersedia secara built-in.
  • Fleksibilitas: Walaupun menyediakan fitur otentikasi siap pakai, Laravel tetap memberikan fleksibilitas untuk penyesuaian sesuai kebutuhan spesifik aplikasi Anda.
  • Dokumentasi Lengkap: Dokumentasi Laravel sangat baik dan mudah dipahami, sehingga mempermudah proses belajar dan pengembangan.
  • Komunitas yang Besar: Komunitas Laravel yang besar berarti banyak sumber daya dan dukungan yang tersedia jika Anda mengalami kesulitan.

Laravel Authentication: Membuat Sistem Login dan Register Sederhana menjadi lebih efisien dan terstruktur berkat framework ini.

2. Persiapan Awal: Instalasi Laravel dan Konfigurasi Database

Langkah pertama adalah memastikan Anda memiliki lingkungan pengembangan yang siap. Ini termasuk PHP (minimal versi 7.3), Composer, dan database (MySQL, PostgreSQL, dll.).

Related Post

Membuat API Authentication dengan Laravel Sanctum: Panduan Lengkap

June 26, 2025

Cara Meningkatkan Keamanan Website Laravel dari Serangan Hacker

June 26, 2025

Top 5 Package Laravel yang Mempermudah Pengembangan Website Anda

June 26, 2025

Cara Menggunakan Laravel Eloquent untuk Query Database: Panduan Lengkap

June 25, 2025

Instalasi Laravel:

Buka terminal atau command prompt Anda dan jalankan perintah berikut:

composer create-project --prefer-dist laravel/laravel nama-proyek
cd nama-proyek

Ganti nama-proyek dengan nama proyek yang Anda inginkan.

Konfigurasi Database:

Buka file .env di direktori proyek Anda. Cari bagian yang berhubungan dengan database dan sesuaikan dengan informasi database Anda. Contoh:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nama_database
DB_USERNAME=username_database
DB_PASSWORD=password_database

Pastikan nama database, username, dan password sesuai dengan pengaturan database Anda. Jangan lupa jalankan perintah migrasi awal untuk membuat tabel-tabel yang dibutuhkan:

php artisan migrate

Perintah ini akan membuat tabel users, password_resets, failed_jobs, dan personal_access_tokens di database Anda. Tabel users ini sangat penting karena akan menyimpan informasi pengguna.

3. Scaffold Authentication: Membuat Controller dan View Otentikasi

Laravel menyederhanakan proses pembuatan sistem otentikasi dengan fitur scaffolding. Fitur ini akan secara otomatis membuat controller, view, dan route yang dibutuhkan untuk login dan register.

Jalankan perintah berikut di terminal:

composer require laravel/ui
php artisan ui vue --auth
npm install && npm run dev

Penjelasan:

  • composer require laravel/ui: Menginstal package Laravel UI.
  • php artisan ui vue --auth: Men-generate scaffold otentikasi menggunakan Vue.js (Anda bisa menggunakan react atau bootstrap jika preferensi Anda berbeda). --auth opsi menandakan kita ingin generate authentication scaffolding.
  • npm install && npm run dev: Menginstal dependencies Node.js dan mengkompilasi aset (CSS dan JavaScript). Pastikan Anda sudah menginstal Node.js.

Setelah perintah ini selesai dijalankan, Anda akan menemukan:

  • Controller otentikasi di app/Http/Controllers/Auth.
  • View otentikasi di resources/views/auth.
  • Route otentikasi telah ditambahkan ke routes/web.php.

Anda sekarang dapat mengakses halaman login dan register melalui URL /login dan /register.

4. Memahami Controller Otentikasi: RegisterController dan LoginController

Mari kita telaah controller yang telah di-generate oleh Laravel:

RegisterController:

Controller ini bertanggung jawab untuk menangani proses registrasi pengguna baru. Di dalam controller ini, Anda akan menemukan method showRegistrationForm untuk menampilkan form registrasi, method register untuk memproses data registrasi, dan method create untuk menyimpan data pengguna baru ke database.

Perhatikan method validator dalam RegisterController. Di sinilah Anda dapat menentukan aturan validasi untuk data yang dimasukkan oleh pengguna, seperti panjang password, format email, dan lain-lain.

LoginController:

Controller ini bertanggung jawab untuk menangani proses login pengguna. Terdapat method showLoginForm untuk menampilkan form login, method login untuk memproses data login, dan method logout untuk mengeluarkan pengguna dari sistem.

Laravel Authentication: Membuat Sistem Login dan Register Sederhana sangat terbantu dengan kedua controller ini.

5. Kustomisasi View Otentikasi: Mempercantik Tampilan Login dan Register

View yang di-generate oleh Laravel sudah berfungsi dengan baik, tetapi mungkin tidak sesuai dengan desain yang Anda inginkan. Anda dapat dengan mudah mengkustomisasi view ini dengan mengubah file-file blade di resources/views/auth.

Contoh:

  • Ubah logo dan warna tema.
  • Tambahkan validasi error message yang lebih informatif.
  • Tambahkan field tambahan pada form registrasi (misalnya, nama lengkap, alamat, dll.).

Pastikan Anda memahami sintaks blade Laravel untuk mempermudah proses kustomisasi. Anda juga dapat memanfaatkan CSS framework seperti Bootstrap atau Tailwind CSS untuk mempercepat proses desain.

6. Validasi Data yang Lebih Ketat: Menambah Aturan Validasi di RegisterController

Seperti yang disebutkan sebelumnya, method validator di RegisterController adalah tempat Anda mendefinisikan aturan validasi. Anda dapat menambahkan aturan validasi yang lebih ketat untuk memastikan data yang disimpan ke database valid dan sesuai dengan kebutuhan aplikasi Anda.

Contoh:

protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
        'terms' => ['required'], // Menambahkan validasi untuk terms and conditions
    ]);
}

Pada contoh di atas, kita menambahkan aturan required untuk field terms (terms and conditions). Ini memastikan bahwa pengguna harus menyetujui terms and conditions sebelum dapat mendaftar. Kita juga menetapkan minimum panjang password menjadi 8 karakter.

7. Menambahkan Kolom Tambahan pada Tabel Users: Nama Lengkap, Alamat, dan Lainnya

Seringkali, kita membutuhkan informasi tambahan selain nama, email, dan password. Kita dapat menambahkan kolom baru ke tabel users untuk menyimpan informasi ini.

Langkah 1: Membuat Migration Baru

Jalankan perintah berikut di terminal:

php artisan make:migration add_kolom_ke_users_table

Ganti add_kolom_ke_users_table dengan nama migration yang sesuai.

Langkah 2: Mengubah File Migration

Buka file migration yang baru dibuat (terletak di database/migrations). Tambahkan kode berikut ke dalam method up():

public function up()
{
    Schema::table('users', function (Blueprint $table) {
        $table->string('nama_lengkap')->nullable();
        $table->text('alamat')->nullable();
        // Tambahkan kolom lain sesuai kebutuhan
    });
}

public function down()
{
    Schema::table('users', function (Blueprint $table) {
        $table->dropColumn('nama_lengkap');
        $table->dropColumn('alamat');
        // Hapus kolom lain sesuai kebutuhan
    });
}

Langkah 3: Menjalankan Migration

Jalankan perintah berikut di terminal:

php artisan migrate

Langkah 4: Mengubah Model User

Buka file app/Models/User.php dan tambahkan kolom-kolom baru ke properti $fillable:

protected $fillable = [
    'name',
    'email',
    'password',
    'nama_lengkap',
    'alamat',
];

Langkah 5: Mengubah RegisterController

Di dalam method create di RegisterController, tambahkan kolom-kolom baru ke array data:

protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
        'nama_lengkap' => $data['nama_lengkap'],
        'alamat' => $data['alamat'],
    ]);
}

Langkah 6: Mengubah View Registrasi

Tambahkan field-field baru ke view registrasi (resources/views/auth/register.blade.php) untuk memungkinkan pengguna memasukkan data untuk kolom-kolom baru.

Laravel Authentication: Membuat Sistem Login dan Register Sederhana menjadi lebih lengkap dengan penambahan kolom-kolom ini.

8. Mengimplementasikan Fitur “Remember Me”: Otentikasi Berkelanjutan

Fitur “Remember Me” memungkinkan pengguna untuk tetap login meskipun browser ditutup. Laravel secara otomatis menangani fitur ini. Anda hanya perlu memastikan bahwa checkbox “Remember Me” ada di form login Anda:

<div class="form-group">
    <div class="form-check">
        <input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>

        <label class="form-check-label" for="remember">
            {{ __('Remember Me') }}
        </label>
    </div>
</div>

Pastikan nama atribut checkbox adalah remember.

9. Mengubah Halaman Redirect Setelah Login: Menuju Dashboard atau Halaman Tertentu

Setelah login, pengguna akan di-redirect ke halaman /home secara default. Anda dapat mengubah perilaku ini dengan mengubah properti $redirectTo di LoginController.

Contoh:

protected $redirectTo = '/dashboard'; // Redirect ke halaman dashboard

Ganti /dashboard dengan URL yang Anda inginkan.

10. Custom Authentication Guards: Mengelola Beberapa Jenis Pengguna (Admin, User, dll.)

Dalam beberapa kasus, Anda mungkin memiliki beberapa jenis pengguna dengan hak akses yang berbeda (misalnya, admin, user biasa, dll.). Anda dapat menggunakan custom authentication guards untuk mengelola otentikasi untuk setiap jenis pengguna.

Langkah 1: Mengkonfigurasi Authentication Guards di config/auth.php

Tambahkan guard baru ke array guards:

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'admin' => [
        'driver' => 'session',
        'provider' => 'admins', // Ganti 'admins' dengan provider yang sesuai
    ],

    // ...
],

Langkah 2: Membuat Authentication Provider Baru

Tambahkan provider baru ke array providers:

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => AppModelsUser::class,
    ],

    'admins' => [
        'driver' => 'eloquent',
        'model' => AppModelsAdmin::class, // Ganti dengan model Admin yang Anda buat
    ],

    // ...
],

Langkah 3: Membuat Model Admin (Jika Belum Ada)

Buat model Admin baru yang mewarisi dari IlluminateFoundationAuthUser:

namespace AppModels;

use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateNotificationsNotifiable;

class Admin extends Authenticatable
{
    use Notifiable;

    protected $fillable = [
        'name', 'email', 'password',
    ];

    protected $hidden = [
        'password', 'remember_token',
    ];

    protected $casts = [
        'email_verified_at' => 'datetime',
    ];
}

Langkah 4: Membuat Controller Login untuk Admin

Buat controller login khusus untuk admin dan gunakan guard admin saat melakukan otentikasi.

Langkah 5: Menggunakan Middleware untuk Melindungi Route Admin

Buat middleware baru untuk memeriksa apakah pengguna yang mencoba mengakses route admin sudah terotentikasi sebagai admin.

Contoh middleware:

namespace AppHttpMiddleware;

use Closure;
use IlluminateSupportFacadesAuth;

class IsAdmin
{
    public function handle($request, Closure $next)
    {
        if (Auth::guard('admin')->check()) {
            return $next($request);
        }

        return redirect('/login'); // Atau halaman lain yang sesuai
    }
}

Daerah admin pada aplikasi Anda sekarang akan dilindungi oleh middleware ini, memastikan hanya pengguna dengan hak akses admin yang dapat mengaksesnya.

11. Password Reset: Lupa Password dan Reset Password

Laravel menyediakan fitur password reset yang lengkap. Anda hanya perlu mengkonfigurasi email untuk mengirimkan link reset password.

Langkah 1: Konfigurasi Email

Pastikan Anda telah mengkonfigurasi pengaturan email di file .env.

Langkah 2: Menggunakan Fitur Password Reset

View password reset sudah tersedia di resources/views/auth/passwords. Pastikan route untuk password reset sudah terdaftar di routes/web.php.

12. Keamanan Tambahan: Rate Limiting dan Two-Factor Authentication

Untuk meningkatkan keamanan sistem otentikasi Anda, pertimbangkan untuk menerapkan:

  • Rate Limiting: Membatasi jumlah percobaan login dalam periode waktu tertentu untuk mencegah brute-force attacks. Laravel memiliki middleware throttle yang dapat Anda gunakan untuk menerapkan rate limiting.
  • Two-Factor Authentication (2FA): Membutuhkan kode verifikasi selain password saat login. Ada banyak package Laravel yang menyediakan fitur 2FA, seperti pragmarx/google2fa-laravel.

Dengan menerapkan langkah-langkah keamanan ini, Anda dapat secara signifikan mengurangi risiko keamanan pada sistem otentikasi Anda.

Dengan mengikuti langkah-langkah di atas, Anda telah berhasil membangun sistem Laravel Authentication: Membuat Sistem Login dan Register Sederhana. Ingatlah bahwa keamanan adalah proses berkelanjutan. Selalu perbarui Laravel dan package yang Anda gunakan ke versi terbaru untuk mendapatkan perbaikan keamanan terbaru. Selamat mengembangkan!

Tags: AuthenticationFrameworkLaravelLoginPHPRegisterSistem LoginSistem RegistertutorialWeb Development
venus

venus

Related Posts

API

Membuat API Authentication dengan Laravel Sanctum: Panduan Lengkap

by Jasper
June 26, 2025
Hacker

Cara Meningkatkan Keamanan Website Laravel dari Serangan Hacker

by Willow
June 26, 2025
Development

Top 5 Package Laravel yang Mempermudah Pengembangan Website Anda

by Seraphina
June 26, 2025
Next Post

Laravel Eloquent ORM: Mengakses Database dengan Mudah

Leave a Reply Cancel reply

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

Recommended

Desain Website Modern dan Menarik: Tingkatkan Konversi dengan Visual yang Memukau

April 9, 2025

Lowongan Kerja Web Development Fresh Graduate: Tips Mendapatkan Pekerjaan Impian

June 9, 2025

Tutorial Laravel Dasar untuk Pemula Bahasa Indonesia: Mulai Membangun Aplikasi Web

June 9, 2025

Tools AI Gratis untuk Meningkatkan Produktivitas Konten Marketing Anda

June 27, 2025

Cara Membuat Artikel SEO-Friendly dengan Bantuan AI

June 26, 2025

Aplikasi AI Terbaik untuk Mengedit Foto Produk Online: Tingkatkan Penjualanmu Sekarang!

June 26, 2025

Membuat API Authentication dengan Laravel Sanctum: Panduan Lengkap

June 26, 2025

m.techreview.click

Our media platform offers reliable news and insightful articles. Stay informed with our comprehensive coverage and in-depth analysis on various topics.
Read more »

Recent Posts

  • Tools AI Gratis untuk Meningkatkan Produktivitas Konten Marketing Anda
  • Cara Membuat Artikel SEO-Friendly dengan Bantuan AI
  • Aplikasi AI Terbaik untuk Mengedit Foto Produk Online: Tingkatkan Penjualanmu Sekarang!

Categories

  • 2024
  • Agency
  • AI
  • Akses
  • Aktif
  • Akuntansi
  • Algoritma
  • Analisis
  • Anggaran
  • Antarmuka
  • Antisipasi
  • API
  • Aplikasi
  • Artikel
  • Asynchronous
  • Audio
  • Authentication
  • Authorization
  • Backend
  • Background
  • Backup
  • Bahasa
  • Bandwidth
  • Bantuan
  • Belajar
  • Bergabung
  • Biaya
  • Bisnis
  • Blogger
  • Bootstrap
  • Branding
  • Bukti
  • Cepat
  • Chatbot
  • Cloud
  • Coding
  • Company
  • Contoh
  • cPanel
  • CRM
  • CSS
  • Custom
  • Dampak
  • Dasar
  • Data
  • Database
  • Deployment
  • Desain
  • Design
  • Detail
  • Developer
  • Development
  • Digital
  • Diskusi
  • Dokumentasi
  • Domain
  • Download
  • Dukungan
  • E-commerce
  • Efektif
  • Efisiensi
  • Eloquent
  • Email
  • Engine
  • Enterprise
  • Error
  • Error generating categories
  • Estimasi
  • Etika
  • Event
  • Faktor
  • Fitur
  • Fleksibel
  • Fortify
  • Foto
  • Framework
  • Freelancer
  • Fresh
  • Frontend
  • Fungsi
  • Gambar
  • Garansi
  • Gratis
  • Hacker
  • Harga
  • Hemat
  • Here are 5 categories derived from the article title "Hosting dengan Dukungan Pelanggan 24 Jam: Bantuan Kapanpun Dibutuhkan": Hosting
  • Here are 5 categories derived from the article title "Hosting Domain Murah Indonesia dengan Proteksi DDoS Gratis: Solusi Terbaik untuk Website Anda": Hosting
  • Here are 5 categories derived from the provided list and the article titles: Company
  • Hosting
  • HTML
  • Hybrid
  • Implementasi
  • Indonesia
  • Inovasi
  • Inspirasi
  • Instalasi
  • Integrasi
  • Investasi
  • Jakarta
  • Jasa
  • JavaScript
  • Kantor
  • Kapasitas
  • Karir
  • Karyawan
  • Keamanan
  • Keandalan
  • Kebutuhan
  • Kecepatan
  • Kecil
  • Kehidupan
  • Kemampuan
  • Kemudahan
  • Kerja
  • Kesalahan
  • Kesehatan
  • Keterampilan
  • Keuntungan
  • Keyword
  • Kode
  • Kompetensi
  • Komponen
  • Komunikasi
  • Komunitas
  • Konsep
  • Konten
  • Konversi
  • Kreativitas
  • Kredibilitas
  • Kualitas
  • Langkah
  • Laravel
  • Latihan
  • Layanan
  • Library
  • Listener
  • Livewire
  • Logika
  • Logo
  • Lokal
  • Loyalitas
  • Machine Learning
  • Mahasiswa
  • Mahir
  • Maintenance
  • Manfaat
  • Manufaktur
  • Marketing
  • Masa Depan
  • Masyarakat
  • Medis
  • Memilih
  • Meningkatkan
  • Middleware
  • Migration
  • Mobile
  • Modern
  • Murah
  • MySQL
  • Observer
  • Online
  • Operasional
  • Optimasi
  • ORM
  • Otentikasi
  • Otomatis
  • Package
  • Panduan
  • Pasar
  • Pekerjaan
  • Pelajaran
  • Pelanggan
  • Pelatihan
  • Peluang
  • Pemahaman
  • Pemanfaatan
  • Pemasaran
  • Pemilihan
  • Pemrograman
  • Pemula
  • Penawaran
  • Pengalaman
  • Pengenalan
  • Pengguna
  • Penggunaan
  • Pengujian
  • Penipuan
  • Penjualan
  • Penulisan
  • Peran
  • Perbandingan
  • Perbedaan
  • Performa
  • Performance
  • Peringkat
  • Pertimbangan
  • Pertumbuhan
  • Perusahaan
  • PHP
  • Pilihan
  • Platform
  • Policy
  • Portofolio
  • Praktik
  • Prediksi
  • Pribadi
  • Process
  • Produktivitas
  • Profesional
  • Profil
  • Profile
  • Project
  • Proyek
  • Python
  • Queue
  • Real-Time
  • Redis
  • Referensi
  • Rekomendasi
  • Relasi
  • Remote
  • Request
  • Responsive
  • Retail
  • Retensi
  • Review
  • Riset
  • Ritel
  • Roadmap
  • Saham
  • Sanctum
  • Sederhana
  • Seeding
  • SEO
  • Sertifikat
  • Server
  • Sharing
  • Sinkronisasi
  • Sistem
  • Skalabilitas
  • Skill
  • Software
  • Solusi
  • Space
  • SSL
  • Startup
  • Strategi
  • Struktur
  • Studi Kasus
  • Sukses
  • Tanggung Jawab
  • Tantangan
  • Teknis
  • Teknologi
  • Teks
  • Template
  • Tenaga Kerja
  • Terbaik
  • Terjangkau
  • Terjemahan
  • Terlengkap
  • Terpercaya
  • Tim
  • Tips
  • Toko
  • Tools
  • Training
  • Transkripsi
  • Tren
  • Tugas
  • Tutorial
  • Uji Coba
  • UMKM
  • Umum
  • Unlimited
  • Uptime
  • URL
  • User Experience
  • Video
  • Visual
  • VPS
  • Wajah
  • Web
  • Web Development
  • Website
  • Windows
  • WordPress

Resource

  • About us
  • Contact Us
  • Privacy Policy

© 2024 m.techreview.click.

No Result
View All Result
  • Website
  • Indonesia
  • Laravel
  • Hosting
  • AI
  • Development

© 2024 m.techreview.click.