Restfull Api dengan Laravel Sanctum
Sebelumnya kita sudah belajar membuat API dengan Laravel untuk keperluan manipulasi data seperti CRUD dan lainnnya. Sekarang kita akan belajar membuat API untuk kebutuhan autentifkasi seperti register dan login.
Kita akan membuat API tersebut dengan package bawaan dari laravel yaitu sanctum. Laravel sanctum menyediakan sistem autentifikasi untuk Single Page Application (SPA), dan mobile application.
Laravel sanctum juga dapat menghasilkan sebuah token dan dengan token kita bisa menentukan kemampuan atau hal apa saja yang bisa dilakukan dengan token tersebut. Misalnya untuk mengakses halaman tertentu atau jika user ingin memperbarui data prbadinya user tersebut harus mempunyai token untuk akses semua hal tersebut.
Pertama install laravel terlebih dahulu, jika tidak menggunakan versi laravel 9 atau 10 install juga package sanctum menggunakan composer seperti berikut :
composer require laravel/sanctum
Lalu jalankan perintah publish dengan artisan :
php artisan vendor:publish –provider=”Laravel\Sanctum\SanctumServiceProvider”
Jika menggunakan versi laravel terbaru lewati saja dua langkah di atas.
Karena kita akan menggunakan sanctum untuk keperluan autentifikasi tambahkan juga middleware sanctum ke api middleware group pada file Kernel.php yang ada pada folder app/Http/Kernel.php.
Atur database credential pada file .env lalu jalankan perintah artisan migrate.
php artisan migrate
Sanctum memungkinkan kita melakaukan generate token API yang dapat digunakan untuk mengautentikasi permintaan API ke aplikasi. Saat membuat permintaan menggunakan token API, token tersebut harus disertakan dalam header Authorization sebagai token Bearer.
Untuk menjalankan generate token bagi user, pada model user gunakan trait dari Laravel\Sanctum\HasApiTokens :
Buat model dan migrations baru dengan perintah artisan :
php artisan make:model Product -m
Tambahkan beberapa kode pada model dan migration Product.
Sekarang buat dua controller untuk proses autentikasi (register, login dan logout ) dan controller untuk proses crud Product.
php artisan make:controller AuthController
php artisan make:controller ProductController
Tambahkan kode di bawah pada file controller tersebut.
Tambahkan beberapa route berikut pada file api.php :
Jalankan server lokal laravel maka hasilnya akan seperti gambar di bawah ini :
Original Posted : samplekoding.com
Source code : samplekoding.com