API Authentication using Laravel Sanctum

Hallo, Kreatif Readers! Laravel Sanctum adalah salah satu package autentikasi dari Laravel yang dirancang khusus untuk menyediakan layanan autentikasi dan otorisasi untuk aplikasi berbasis RESTful API. Laravel Sanctum menggunakan token yang memperbolehkan 1 user memiliki beberapa token dengan batasan/scope yang berbeda-beda. Hal tersebut dapat digambarkan seperti ilustrasi berikut

ilustrasi-proses-kerja-sanctum

Fitur utama dari Laravel Sanctum adalah sebagai berikut:

1. API Token Authentication

Sanctum memungkinkan aplikasi untuk generate token API yang nantinya digunakan untuk mengakses API yang dilindungi. Setiap token dapat memiliki scope yang berbeda, tergantung pengaturan batasan API yang telah ditentukan

2. SPA Authentication

Sanctum juga mendukung autentikasi untuk SPA. Dengan menggunakan Laravel sebagai backend dan framework JavaScript modern seperti Vue.js atau React di frontend, Sanctum dapat mengelola otentikasi pengguna melalui cookie-based session.

3. Mobile Application Authentication

Selain untuk SPA, Sanctum juga dapat digunakan untuk autentikasi aplikasi mobile, memberikan fleksibilitas lebih dalam mengelola akses pengguna di berbagai platform.

Penggunaan Laravel Sanctum

1. Installasi dan konfigurasi

Install menggunakan composer

composer require laravel/sanctum

Publish konfigurasi sanctum

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"

Migrasi tabel yang dibutuhkan sanctum

php artisan migrate

2. Penggunaan API Token

Panggil method createToken pada model User:

$token = $user->createToken('token-name')->plainTextToken;

Token ini kemudian bisa digunakan untuk autentikasi request API dengan menyertakannya pada header Authorization:

Authorization: Bearer <token>

3. Autentikasi SPA

Untuk SPA, Sanctum menggunakan session-based authentication. Pertama, konfigurasikan middleware pada file api.php:

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
 return $request->user();
});

Studi Kasus penggunaan Laravel Sanctum

Beberapa perusahaan dan startup menggunakan Laravel Sanctum untuk menangani autentikasi API karena kemudahan dan keamanannya. Bentuk penggunaannya adalah penerpana autentikasi pada proses jual beli, dimana data yang diproses merupakan data konfidental seperti nomor telepon, nomor rekening, alamat, dll.

Reference:
[1] Tampilan IMPLEMENTASI WEB SERVICE DENGAN METODE RESTFUL PADA SISTEM PENJUALAN BARANG DI PT. WELLCOMM GROUP (budiluhur.ac.id)

[2] Laravel Sanctum - Laravel 11.x - The PHP Framework For Web Artisans