Restfull Api dengan Laravel Sanctum

Eri Pratama
3 min readMay 3, 2023

--

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.

File model Product.php
File migrations products

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.

AuthController.php
ProductController.php

Tambahkan beberapa route berikut pada file api.php :

api.php

Jalankan server lokal laravel maka hasilnya akan seperti gambar di bawah ini :

proses register user
Hasil response register
Proses login user
Hasil response login user
Proses store data tanpa melakukan autentikasi (login)
Hasil response store data tanpa autentikasi (login)
store data dengan user telah melakukan autentikasi (login)
copy token dari response yang di dapat saat melakukan login masuk ke tab auth pilih opsi Bearer untuk menambahkan token seperti pada gambar
Hasil response dari store data
Proses update data
Hasil Response update data
Proses delete data
Hasil response delete data

Original Posted : samplekoding.com

Source code : samplekoding.com

--

--