Bismillahirrahmannirrahim. Laravel memiliki beberapa middleware otentikasi bawaan yang bisa digunakan, yaitu :
auth
Middleware ini adalah mungkin yang paling sering digunakan, middleware ini digunakan ketika akan menggunakan otentikasi berbasis cookie
Route::middleware(['auth'])->group(function () {
Route::get('home', function () {
echo "<h1>Selamat Datang</h1>";
});
});
untuk menggunakan middleware ini sebelumnya kita harus mengimplementasikan sistem otentikasi, membuat halaman login dll, atau kita bisa menggunakan package yang sudah disediakan oleh laravel seperti laravel breeze dan laravel jetstream.
auth.basic
auth.basic merupakan middleware untuk mengimplementasikan Basic access authentication yaitu teknik sederhana untuk kontrol akses suatu halaman, sangat sederhana karena kita tidak perlu membutuhkan cookes, session atau membuat halaman login sendiri.
Route::middleware(['auth.basic'])->group(function () {
Route::get('home', function () {
echo "<h1>Selamat Datang</h1>";
});
});
ketika mengakses halaman yang menggunakan middleware ini melalui browser, browser akan menampilkan form login
di laravel ketika menggunakan metode ini, form username akan menganggap ke kolom email di tabel users.
selain di browser, metode basic authentication ini juga bisa untuk digunakan otentikasi API.
<?php
$username = "indra@email.com";
$password = "secret";
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'localhost:8000/dashboard',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: basic' . base64_encode([$username] . ':' . $password)
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
auth:sanctum
Yang terakhir adalah auth:sanctum, middleware yang mengimplementasikan otentikasi berbasis token, berbeda dengan auth dan auth.basic kita tidak bisa langsung memakainya tapi kita harus menginstall package nya terlebih dahulu.
php artisan install:api
kemudian kita bisa menggunakannya sebagaimana auth dan auth.basic :
Route::middleware(['auth:sanctum'])->group(function () {
Route::get('home', function () {
echo "<h1>Selamat Datang</h1>";
});
});
tidak seperti auth yang menggunakan cookies atau session, auth.sanctum menggunakan API token yang di pasang di header request seperti halnya auth.basic tapi lebih aman karena tidak menyertakan username atau password pada setiap request melainkan menggunakan token.
<?php
$username = "indra@email.com";
$password = "secret";
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'localhost:8000/dashboard',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: bearer [token]'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;