Autentikasi dan Otorisasi
Pada Laravel
1. Latar Belakang
Dalam pengembangan perangkat lunak modern, keamanan sistem informasi merupakan aspek krusial yang tidak bisa diabaikan. Sebuah aplikasi web sering kali menyimpan data sensitif dan memiliki berbagai fitur yang hanya boleh diakses oleh pihak-pihak tertentu. Tanpa adanya sistem perlindungan yang baik, aplikasi rentan terhadap kebocoran data dan penyalahgunaan hak akses.
Oleh karena itu, diperlukan mekanisme untuk memvalidasi identitas pengguna dan membatasi akses mereka sesuai dengan peran masing-masing. Di sinilah peran Autentikasi dan Otorisasi menjadi sangat penting. Membangun kedua sistem ini dari awal (from scratch) sering kali memakan waktu dan rentan terhadap celah keamanan (bug). Framework Laravel hadir memberikan solusi dengan menyediakan sistem autentikasi dan otorisasi bawaan yang aman, terstruktur, dan mudah diimplementasikan, sehingga pengembang dapat lebih fokus pada pembuatan fitur utama aplikasi.

2. Alat dan Bahan
a. Perangkat Lunak
- Web browser (contoh: Google Chrome atau Mozilla Firefox)
- Code editor / text editor (contoh: Visual Studio Code)
- Terminal / Command Prompt
- Web server
- Composer
- PHP minimal versi 8.x
b. Perangkat Keras
- Laptop / Komputer.
3. Pembahasan
3.1 Apa itu Laravel?
Laravel adalah framework aplikasi web berbasis PHP yang menggunakan arsitektur Model View Controller atau MVC untuk memisahkan logika program, pengelolaan data, dan tampilan. Framework ini dikembangkan oleh Taylor Otwell dan dirancang untuk mempermudah proses pengembangan aplikasi dengan sintaks yang jelas, struktur proyek yang terorganisir, serta fitur bawaan seperti routing, middleware, validasi, sistem autentikasi, dan Eloquent ORM untuk pengelolaan database. Dengan Laravel, pengembang tidak perlu membangun sistem dari nol karena sebagian besar kebutuhan dasar aplikasi web sudah tersedia dan terintegrasi dengan baik, sehingga pengembangan menjadi lebih cepat, aman, dan terstruktur.
3.2 Apa Itu Autentikasi dan Otorisasi?
1. Pengertian Autentikasi
Dalam Laravel, autentikasi adalah proses untuk memverifikasi identitas pengguna. Sistem memastikan bahwa pengguna benar-benar orang yang ia klaim.
Secara sederhana:
Autentikasi menjawab pertanyaan → “Siapa kamu?”
Analogi Autentikasi:
Bayangkan kamu masuk ke perpustakaan sekolah.
Petugas bertanya: “Mana kartu pelajarnya?”
Kamu menunjukkan kartu.
Petugas mengecek apakah kartu itu valid.
Jika valid → kamu boleh masuk.
Itu autentikasi. Sistem hanya memastikan identitasmu benar.
Contoh nyata:
- Login menggunakan email dan password
- Login menggunakan token API
- Login menggunakan OTP
Jika data cocok, sistem memberikan akses masuk.
2. Pengertian Otorisasi
Otorisasi adalah proses menentukan hak akses pengguna setelah berhasil login.
Otorisasi menjawab pertanyaan → “Kamu boleh melakukan apa?”
Analogi Otorisasi:
Masih di perpustakaan.
Semua siswa boleh masuk (autentikasi).
Tapi hanya petugas perpustakaan yang boleh mengakses ruang arsip (otorisasi).
Contoh nyata:
- Admin boleh menghapus data, user biasa hanya boleh melihat data
- Guru boleh mengedit nilai, siswa hanya boleh melihat nilai
Meskipun semua sudah login, tidak semua punya hak yang sama.
Jadi:
Autentikasi = cek identitas
Otorisasi = cek izin
3.3 Implementasi Autentikasi dan Otorisasi
1. Implementasi Autentikasi di Laravel
Laravel menyediakan sistem autentikasi bawaan yang dapat digunakan tanpa harus membangun dari awal. Pada versi terbaru, Laravel menyediakan starter kit seperti:
- Laravel Breeze
- Laravel Jetstream
Starter kit tersebut sudah menyediakan fitur login, register, logout, reset password, dan manajemen sesi.
a. Instalasi Autentikasi Menggunakan Laravel Breeze
Berikut langkah-langkah implementasi:
1. Siapkan projek Laravel terlebih dahulu:
composer create-project laravel/laravel nama-project
2. Install Laravel Breeze
composer require laravel/breeze --dev
php artisan breeze:install
3. Install dependensi frontend:
npm install4. Jalankan migrasi database
npm run dev
php artisan migrate
Setelah proses ini selesai, sistem autentikasi dasar seperti login dan register sudah bisa digunakan.
b. Konsep Dasar Autentikasi Laravel
Laravel menggunakan beberapa komponen utama:
- Guard
Guard menentukan bagaimana pengguna diautentikasi pada setiap request.
Contoh: web untuk aplikasi berbasis sesi, api untuk token.
- Provider
Provider menentukan bagaimana data pengguna diambil dari database.
- Middleware auth
Digunakan untuk membatasi akses ke route tertentu.
Contoh penggunaan middleware pada route:
Route::get('/dashboard', function () {
return view('dashboard');
})->middleware('auth');
Artinya, hanya pengguna yang sudah login yang bisa mengakses halaman tersebut.
2. Implementasi Otorisasi di Laravel
Setelah pengguna berhasil login, tahap berikutnya adalah menentukan hak aksesnya. Laravel menyediakan beberapa cara untuk mengatur otorisasi:
- Gate
- Policy
Role & Permission (manual atau menggunakan package tambahan)
a. Otorisasi Menggunakan Gate
Gate digunakan untuk mengatur izin secara sederhana.
Contoh definisi Gate di AuthServiceProvider:
Gate::define('is-admin', function ($user) {Penggunaan di controller:
return $user->role === 'admin';
});
if (Gate::allows('is-admin')) {Atau di Blade:
// aksi admin
}
@can('is-admin')
<p>Hanya admin yang bisa melihat ini</p>
@endcan
b. Otorisasi Menggunakan Policy
Policy digunakan untuk pengaturan izin yang lebih kompleks dan terstruktur.
Membuat policy:
php artisan make:policy PostPolicy --model=Post
Contoh method dalam Policy:
public function update(User $user, Post $post)
{
return $user->id === $post->user_id;
}
Artinya, hanya pemilik data yang boleh mengedit.
Pemanggilan di controller:
$this->authorize('update', $post);
Jika tidak memiliki izin, Laravel otomatis menampilkan error 403.
c. Role dan Permission
Dalam aplikasi yang lebih kompleks (misalnya sistem sekolah atau perusahaan), biasanya digunakan sistem role seperti:
- Admin
- Operator
- User
Implementasi sederhana di database:
Tambahkan kolom role pada tabel users:
$table->string('role')->default('user');
Kemudian batasi akses berdasarkan role tersebut menggunakan middleware atau Gate.
Untuk sistem yang lebih kompleks, dapat menggunakan package seperti:
spatie/laravel-permission
Package ini mempermudah pengelolaan role dan permission secara fleksibel.
3. Perbedaan Autentikasi dan Otorisasi dalam Implementasi
Autentikasi terjadi saat proses login dan pengecekan identitas pengguna.
Otorisasi terjadi setelah login untuk menentukan fitur apa yang boleh diakses.
Tanpa autentikasi → sistem tidak tahu siapa pengguna.
Tanpa otorisasi → semua pengguna bisa mengakses semua fitur.
Keduanya harus berjalan bersama untuk menciptakan sistem yang aman.
3.4 Kesimpulan
Autentikasi dan otorisasi merupakan dua komponen penting dalam sistem keamanan aplikasi web. Autentikasi berfungsi untuk memverifikasi identitas pengguna, sedangkan otorisasi menentukan hak akses pengguna terhadap fitur atau data tertentu.
Laravel sebagai framework PHP modern telah menyediakan sistem autentikasi dan otorisasi yang terintegrasi dan mudah digunakan. Dengan fitur seperti middleware, Gate, Policy, serta dukungan role dan permission, pengembang dapat membangun sistem keamanan yang terstruktur tanpa harus membuatnya dari awal.
4. Daftar Pustaka
Otwell, Taylor. (2023). Laravel Documentation. Tersedia di: [https://laravel.com/docs](https://laravel.com/docs)
Rahman, Aji Saka. (2022). Apa itu Laravel? Angon Data Aji Saka.
W3Schools. (2023). PHP Authentication Tutorial.
Spatie. (2023). Laravel Permission Documentation. Tersedia di: [https://spatie.be/docs/laravel-permission](https://spatie.be/docs/laravel-permission)
0 Komentar