Tutorial Laravel 12 – Membuat Website Blog Berita – Bagian #4 (Membuat Login Laravel Breeze, Pembagian Role dan Middleware)

Menambahkan Autentikasi User (Login & Register)

Laravel menyediakan sistem autentikasi bawaan yang aman dan siap pakai.
Untuk proyek web berita skala kecil–menengah, Laravel Breeze adalah pilihan yang ringan, cepat, dan mudah dipahami.

Dengan autentikasi ini, aplikasi dapat membedakan:

  • Pengguna publik → hanya membaca berita
  • Editor / Admin → mengelola konten berita

Tujuan Pembelajaran

Setelah mempelajari bagian ini, peserta mampu:

  • Menginstal sistem login & register Laravel
  • Memahami alur autentikasi Laravel
  • Menambahkan role user (admin, editor, user)
  • Membatasi akses halaman menggunakan middleware

A. Instalasi Laravel Breeze

Jalankan perintah berikut di terminal:

composer require laravel/breeze --dev
php artisan breeze:install
npm install
npm run dev
php artisan migrate

Hasil Instalasi

Perintah di atas otomatis membuat:

  • Tabel users
  • Route login / register / logout
  • Middleware auth
  • Tampilan login & register berbasis Blade

B. Menambahkan Role pada Tabel Users

Role digunakan untuk membedakan hak akses pengguna.

1. Membuat Migration

Buat file migrasi baru:

php artisan make:migration add_role_to_users_table --table=users

2. Isi File Migration

public function up()
{
   Schema::table('users', function (Blueprint $table) {
       $table->string('role')->default('editor'); // atau 'user' jika kamu mau
   });
}

public function down()
{
   Schema::table('users', function (Blueprint $table) {
       $table->dropColumn('role');
   });
}

Jalankan Migration:

php artisan migrate

Role yang digunakan:

  • admin → akses penuh
  • editor → kelola berita
  • user → hanya melihat berita

C. Membatasi Akses dengan Middleware Role

1. Membuat Middleware

php artisan make:middleware RoleMiddleware

Gunakan di routes

Di routes/web.php:

use App\Http\Controllers\PostController;
// Hanya admin & editor yang bisa kelola post
Route::middleware(['auth', 'role:admin,editor'])->group(function () {
   Route::resource('posts', PostController::class)->except(['show']);
});

// Publik tetap bisa lihat berita
Route::get('/posts/{post}', [PostController::class, 'show'])->name('posts.show');

Alur Hak Akses User

User Publik
   └── Lihat Berita

Editor
   ├── Login
   └── CRUD Berita

Admin
   ├── Login
   ├── CRUD Berita
   └── Kelola User (opsional)
Tags :

Leave a Reply

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

two × 1 =

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.