Lokerwfh
  • Indonesia
  • Website
  • Hosting
  • Laravel
  • Development
  • Bisnis
No Result
View All Result
Lokerwfh
  • Indonesia
  • Website
  • Hosting
  • Laravel
  • Development
  • Bisnis
No Result
View All Result
Lokerwfh
No Result
View All Result
Home API

Tutorial Membuat API Sederhana Dengan Laravel Sanctum Bahasa Indonesia

Seraphina Blackwood by Seraphina Blackwood
July 5, 2025
in API, Authentication, Bahasa, Laravel, Tutorial
0
Share on FacebookShare on Twitter

Laravel Sanctum adalah cara yang sangat nyaman untuk mengotentikasi aplikasi single-page (SPA), aplikasi seluler, dan API sederhana berbasis token. Dalam tutorial ini, kita akan mempelajari langkah demi langkah cara membuat API sederhana dengan Laravel Sanctum menggunakan bahasa Indonesia. Anda akan belajar cara mengimplementasikan autentikasi token untuk endpoint API Anda, memungkinkan pengguna mengakses data Anda dengan aman.

Apa Itu Laravel Sanctum dan Mengapa Anda Harus Menggunakannya?

Sebelum kita mulai coding, mari kita pahami dulu apa itu Laravel Sanctum dan mengapa ia menjadi pilihan populer untuk autentikasi API.

Laravel Sanctum menyediakan sistem autentikasi berbasis token yang ringan, ideal untuk:

  • Aplikasi SPA (Single-Page Application): Sanctum memungkinkan aplikasi frontend Anda (misalnya, React, Vue.js, Angular) untuk dengan mudah berinteraksi dengan backend Laravel Anda.
  • Aplikasi Seluler: Sanctum memungkinkan aplikasi seluler Anda untuk mengautentikasi pengguna dan mengakses data API Anda dengan aman.
  • API Sederhana: Jika Anda membutuhkan autentikasi sederhana untuk API Anda tanpa kerumitan protokol OAuth, Sanctum adalah solusi yang tepat.

Keunggulan menggunakan Laravel Sanctum:

Related Post

Cara Mudah Membuat Website Company Profile Dengan HTML CSS Responsive

July 5, 2025

Laravel Indonesia: Komunitas Pengembang Laravel Terbesar di Indonesia

July 4, 2025

Panduan Lengkap Belajar Laravel Framework Bahasa Indonesia untuk Pemula

July 4, 2025

Cara Menggunakan Laravel Sanctum Untuk Authentication: Amankan Aplikasi Laravelmu!

July 3, 2025
  • Ringan dan Mudah Digunakan: Setup yang cepat dan sederhana dibandingkan dengan sistem autentikasi berbasis OAuth yang lebih kompleks.
  • Aman: Menggunakan token API untuk autentikasi, mengurangi risiko serangan CSRF (Cross-Site Request Forgery).
  • Fleksibel: Dapat digunakan untuk berbagai jenis aplikasi.
  • Terintegrasi dengan Laravel: Fitur-fitur Sanctum sangat terintegrasi dengan framework Laravel.

Persiapan Awal: Instalasi Laravel dan Konfigurasi Database

Langkah pertama adalah memastikan Anda memiliki lingkungan pengembangan Laravel yang berfungsi. Jika belum, ikuti langkah-langkah berikut:

  1. Instalasi Laravel: Gunakan Composer untuk membuat proyek Laravel baru.

    composer create-project laravel/laravel:^9.0 belajar-sanctum
    cd belajar-sanctum

    Ganti belajar-sanctum dengan nama proyek yang Anda inginkan.

  2. Konfigurasi Database: Edit file .env dan atur koneksi database Anda. Pastikan database yang Anda gunakan sudah dibuat.

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=belajar_sanctum
    DB_USERNAME=root
    DB_PASSWORD=

    Ganti belajar_sanctum, root, dan password sesuai dengan konfigurasi database Anda.

  3. Migrasi Database: Jalankan migrasi default untuk membuat tabel-tabel yang diperlukan.

    php artisan migrate

Instalasi dan Konfigurasi Laravel Sanctum

Setelah proyek Laravel Anda siap, langkah selanjutnya adalah menginstal dan mengkonfigurasi Laravel Sanctum.

  1. Instalasi Sanctum: Gunakan Composer untuk menginstal package Sanctum.

    composer require laravel/sanctum
  2. Konfigurasi Sanctum: Jalankan perintah vendor:publish untuk mempublish file konfigurasi Sanctum.

    php artisan vendor:publish --provider="LaravelSanctumSanctumServiceProvider"

    Perintah ini akan membuat file konfigurasi config/sanctum.php yang dapat Anda sesuaikan sesuai kebutuhan. Periksa file ini untuk opsi-opsi konfigurasi yang tersedia.

  3. Migrasi Sanctum: Jalankan migrasi Sanctum untuk membuat tabel personal_access_tokens.

    php artisan migrate

    Tabel ini akan digunakan untuk menyimpan token API yang dihasilkan.

  4. Model User: Pastikan model AppModelsUser menggunakan trait HasApiTokens dari Sanctum.

    <?php
    
    namespace AppModels;
    
    use IlluminateContractsAuthMustVerifyEmail;
    use IlluminateDatabaseEloquentFactoriesHasFactory;
    use IlluminateFoundationAuthUser as Authenticatable;
    use IlluminateNotificationsNotifiable;
    use LaravelSanctumHasApiTokens;
    
    class User extends Authenticatable
    {
        use HasApiTokens, HasFactory, Notifiable;
    
        // ... sisa kode model User
    }

Membuat Route dan Controller untuk Autentikasi

Sekarang kita akan membuat route dan controller untuk menangani proses registrasi dan login pengguna.

  1. Membuat Controller: Buat controller baru bernama AuthController.

    php artisan make:controller AuthController
  2. Kode Controller (AuthController.php):

    <?php
    
    namespace AppHttpControllers;
    
    use AppModelsUser;
    use IlluminateHttpRequest;
    use IlluminateSupportFacadesHash;
    use IlluminateSupportFacadesValidator;
    use IlluminateSupportStr;
    
    class AuthController extends Controller
    {
        public function register(Request $request)
        {
            $validator = Validator::make($request->all(), [
                'name' => 'required|string|max:255',
                'email' => 'required|string|email|max:255|unique:users',
                'password' => 'required|string|min:8',
            ]);
    
            if ($validator->fails()) {
                return response()->json($validator->errors(), 400);
            }
    
            $user = User::create([
                'name' => $request->name,
                'email' => $request->email,
                'password' => Hash::make($request->password),
            ]);
    
            $token = $user->createToken('auth_token')->plainTextToken;
    
            return response()->json([
                'access_token' => $token,
                'token_type' => 'Bearer',
            ]);
        }
    
        public function login(Request $request)
        {
            $validator = Validator::make($request->all(), [
                'email' => 'required|string|email|max:255',
                'password' => 'required|string',
            ]);
    
            if ($validator->fails()) {
                return response()->json($validator->errors(), 400);
            }
    
            $user = User::where('email', $request->email)->first();
    
            if (!$user || !Hash::check($request->password, $user->password)) {
                return response()->json([
                    'message' => 'Invalid credentials'
                ], 401);
            }
    
            $token = $user->createToken('auth_token')->plainTextToken;
    
            return response()->json([
                'access_token' => $token,
                'token_type' => 'Bearer',
            ]);
        }
    
        public function logout(Request $request)
        {
            $request->user()->currentAccessToken()->delete();
    
            return response()->json([
                'message' => 'Successfully logged out'
            ]);
        }
    }

    Kode ini berisi tiga method:

    • register(): Menerima data registrasi dari pengguna, memvalidasinya, membuat user baru, dan menghasilkan token API.
    • login(): Menerima kredensial login dari pengguna, memvalidasinya, dan menghasilkan token API jika kredensial valid.
    • logout(): Mencabut token API yang sedang digunakan oleh pengguna.
  3. Membuat Route: Tambahkan route untuk registrasi, login, dan logout di file routes/api.php.

    <?php
    
    use AppHttpControllersAuthController;
    use IlluminateHttpRequest;
    use IlluminateSupportFacadesRoute;
    
    Route::post('/register', [AuthController::class, 'register']);
    Route::post('/login', [AuthController::class, 'login']);
    
    Route::middleware('auth:sanctum')->group(function () {
        Route::get('/user', function (Request $request) {
            return $request->user();
        });
        Route::post('/logout', [AuthController::class, 'logout']);
    });

    Perhatikan penggunaan Route::middleware('auth:sanctum')->group(...) untuk melindungi route user dan logout. Route ini hanya dapat diakses oleh pengguna yang sudah terautentikasi (memiliki token API yang valid).

Membuat Endpoint API yang Terproteksi (Protected)

Sekarang, mari kita buat contoh endpoint API yang memerlukan autentikasi.

  1. Membuat Controller: Buat controller baru bernama ProductController.

    php artisan make:controller ProductController
  2. Kode Controller (ProductController.php):

    <?php
    
    namespace AppHttpControllers;
    
    use IlluminateHttpRequest;
    
    class ProductController extends Controller
    {
        public function index()
        {
            // Dummy data for products
            $products = [
                ['id' => 1, 'name' => 'Product A', 'price' => 100],
                ['id' => 2, 'name' => 'Product B', 'price' => 200],
            ];
    
            return response()->json($products);
        }
    }

    Controller ini hanya memiliki satu method index() yang mengembalikan daftar produk dummy.

  3. Membuat Route: Tambahkan route untuk mengakses daftar produk di file routes/api.php, dan pastikan route tersebut berada di dalam middleware auth:sanctum.

    <?php
    
    use AppHttpControllersAuthController;
    use AppHttpControllersProductController;
    use IlluminateHttpRequest;
    use IlluminateSupportFacadesRoute;
    
    Route::post('/register', [AuthController::class, 'register']);
    Route::post('/login', [AuthController::class, 'login']);
    
    Route::middleware('auth:sanctum')->group(function () {
        Route::get('/user', function (Request $request) {
            return $request->user();
        });
        Route::post('/logout', [AuthController::class, 'logout']);
        Route::get('/products', [ProductController::class, 'index']); // Route terproteksi
    });

Pengujian API dengan Postman atau Insomnia

Untuk menguji API yang telah kita buat, Anda dapat menggunakan aplikasi seperti Postman atau Insomnia.

  1. Registrasi Pengguna: Kirim request POST ke endpoint /api/register dengan data nama, email, dan password. Anda akan menerima respon berupa token API.

  2. Login Pengguna: Kirim request POST ke endpoint /api/login dengan data email dan password. Anda juga akan menerima respon berupa token API.

  3. Mengakses Endpoint Terproteksi:

    • Set header Authorization dengan nilai Bearer <token_api>, ganti <token_api> dengan token yang Anda dapatkan dari proses registrasi atau login.
    • Kirim request GET ke endpoint /api/products. Anda akan menerima respon berupa daftar produk.
    • Jika Anda mencoba mengakses endpoint ini tanpa header Authorization yang valid, Anda akan menerima respon error dengan kode 401 (Unauthorized).
  4. Logout Pengguna: Kirim request POST ke endpoint /api/logout dengan header Authorization yang valid. Anda akan menerima respon bahwa logout berhasil. Setelah logout, token API Anda tidak akan valid lagi.

Tips Tambahan untuk Pengembangan API yang Lebih Baik

Berikut adalah beberapa tips tambahan untuk mengembangkan API yang lebih baik dengan Laravel Sanctum:

  • Validasi Input: Selalu validasi input dari pengguna untuk mencegah serangan dan memastikan data yang disimpan konsisten. Gunakan Validator Laravel untuk memudahkan proses validasi.
  • Error Handling: Implementasikan error handling yang baik untuk memberikan informasi yang jelas dan berguna kepada pengguna jika terjadi kesalahan.
  • Dokumentasi API: Buat dokumentasi API yang lengkap dan mudah dipahami. Ini akan membantu developer lain (atau Anda sendiri di masa depan) untuk menggunakan API Anda dengan benar. Anda bisa menggunakan tools seperti Swagger/OpenAPI untuk membuat dokumentasi otomatis.
  • Rate Limiting: Implementasikan rate limiting untuk mencegah penyalahgunaan API. Laravel menyediakan middleware throttle yang dapat Anda gunakan.
  • Penggunaan UUID: Pertimbangkan penggunaan UUID sebagai primary key untuk model-model Anda. Ini dapat meningkatkan keamanan dan fleksibilitas aplikasi Anda. Anda dapat menggunakan package seperti ramsey/uuid untuk menghasilkan UUID.
  • Pengujian Otomatis: Buat unit test dan feature test untuk memastikan API Anda berfungsi dengan benar dan tidak ada regression setelah perubahan kode.

Kesimpulan: Membuat API Sederhana dengan Laravel Sanctum

Selamat! Anda telah berhasil membuat API sederhana dengan Laravel Sanctum menggunakan bahasa Indonesia. Anda telah mempelajari cara menginstal dan mengkonfigurasi Sanctum, membuat route dan controller untuk autentikasi, dan membuat endpoint API yang terproteksi. Dengan pengetahuan ini, Anda dapat mengembangkan API yang lebih kompleks dan aman dengan Laravel Sanctum. Jangan ragu untuk bereksperimen dengan fitur-fitur Sanctum lainnya dan menjelajahi dokumentasi resminya.

Semoga tutorial ini bermanfaat! Jika Anda memiliki pertanyaan atau saran, jangan ragu untuk meninggalkan komentar di bawah. Selamat mencoba!

Tags: APIAPI AuthenticationAuthenticationBahasa IndonesiaDevelopmentLaravelLaravel SanctumphpsederhanaTutorial
Seraphina Blackwood

Seraphina Blackwood

Related Posts

Development

Cara Mudah Membuat Website Company Profile Dengan HTML CSS Responsive

by Jasper Thorne
July 5, 2025
Developer

Laravel Indonesia: Komunitas Pengembang Laravel Terbesar di Indonesia

by Atticus Finch
July 4, 2025
Bahasa Indonesia

Panduan Lengkap Belajar Laravel Framework Bahasa Indonesia untuk Pemula

by Seraphina Blackwood
July 4, 2025
Next Post

Tips Memilih Hosting Murah Berkualitas di Indonesia Untuk Website Bisnis

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recommended

Cara Membuat REST API dengan Laravel: Integrasi dengan Aplikasi Lain

June 15, 2025

Hosting WordPress Indonesia: Dukungan Bahasa dan Server Lokal Terbaik untuk Website Anda

May 30, 2025

Etika Penggunaan AI dalam Kehidupan Sehari-hari: Tanggung Jawab dan Dampak Sosial

March 20, 2025

Contoh Project Laravel Sederhana dengan Database: Belajar Laravel dari Studi Kasus

March 27, 2025

Cara Mudah Membuat Website Company Profile Dengan HTML CSS Responsive

July 5, 2025

Tips Memilih Hosting Murah Berkualitas di Indonesia Untuk Website Bisnis

July 5, 2025

Tutorial Membuat API Sederhana Dengan Laravel Sanctum Bahasa Indonesia

July 5, 2025

Jasa Pembuatan Website E-Commerce Murah Jakarta: Siap Jualan Online!

July 4, 2025

Lokerwfh

Our media platform offers reliable news and insightful articles. Stay informed with our comprehensive coverage and in-depth analysis on various topics.
Read more »

Recent Posts

  • Cara Mudah Membuat Website Company Profile Dengan HTML CSS Responsive
  • Tips Memilih Hosting Murah Berkualitas di Indonesia Untuk Website Bisnis
  • Tutorial Membuat API Sederhana Dengan Laravel Sanctum Bahasa Indonesia

Categories

  • 2024
  • 24 Jam
  • Admin
  • AI
  • Akses
  • Alternatif
  • Analisis
  • Analytics
  • Android
  • Anggaran
  • API
  • Aplikasi
  • Artisan
  • Authentication
  • Authorization
  • Back-End
  • Backend
  • Backup
  • Bahasa
  • Bahasa Indonesia
  • Bandwidth
  • Belajar
  • Best Practices
  • Biaya
  • Bisnis
  • Blade
  • Blogger
  • Bootstrap
  • Brand
  • Business
  • Career
  • CDN
  • Cepat
  • Chatbot
  • ChatGPT
  • Cloud
  • Coding
  • Company
  • Computer Vision
  • cPanel
  • CRM
  • CRUD
  • CSS
  • Dampak
  • Data
  • Database
  • Deployment
  • Desain
  • Developer
  • Development
  • Disk Space
  • Diskusi
  • Domain
  • Download
  • Downtime
  • Dukungan
  • E-commerce
  • E-learning
  • Efektif
  • Efektivitas
  • Efisiensi
  • Eloquent
  • Email
  • Error generating categories
  • Etika
  • Excel
  • Fitur
  • Framework
  • Freelance
  • Front-End
  • Frontend
  • Full-Stack
  • Gambar
  • Google
  • Gratis
  • Hacker
  • Harga
  • Hasil
  • Hemat
  • Here are 5 categories derived from the article title "Cara Install Laravel di Windows dengan XAMPP: Panduan Mudah & Cepat": Laravel
  • Here are 5 categories derived from the article title "Hosting Murah dengan SSD untuk Website Cepat dan Stabil di Indonesia": Hosting
  • Here are 5 categories derived from the provided list: Hosting
  • Heroku
  • Hiburan
  • Hosting
  • HTML
  • Impian
  • Implementasi
  • Indonesia
  • Industri
  • Inovasi
  • Inspirasi
  • Instalasi
  • Integrasi
  • Interaktif
  • Interface
  • Investasi
  • iOS
  • Jakarta
  • Jasa
  • JavaScript
  • Karir
  • Karyawan
  • Keamanan
  • Kebutuhan
  • Kecepatan
  • Kemudahan
  • Kesuksesan
  • Kolaborasi
  • Kompatibilitas
  • Komponen
  • Komunikasi
  • Komunitas
  • Konfigurasi
  • Konten
  • Kreatif
  • Kustomisasi
  • Laravel
  • Livewire
  • Lokal
  • Mahasiswa
  • Maintenance
  • Manajemen
  • Marketing
  • Memilih
  • Middleware
  • Migrasi
  • Mobile
  • Modern
  • Monitoring
  • Murah
  • MySQL
  • NVMe
  • Offline
  • Online
  • Open Source
  • Optimasi
  • ORM
  • Otomatis
  • Otomatisasi
  • Package
  • Panduan
  • Payment
  • Pelajar
  • Pelanggan
  • Pelatihan
  • Pemula
  • Pengembangan
  • Pengguna
  • Penjualan
  • Perbandingan
  • Performa
  • Perusahaan
  • PHP
  • Platform
  • Portfolio
  • Praktis
  • Prediksi
  • Produktivitas
  • Profesional
  • Projects
  • Python
  • Ranking
  • React
  • Rekomendasi
  • Responsive
  • Retail
  • Review
  • Roadmap
  • Sales
  • SEO
  • Sertifikasi
  • Server
  • Shared
  • Sistem
  • Skalabilitas
  • Skills
  • Software
  • Solusi
  • Sosial
  • SSD
  • SSL
  • Strategi
  • Studi Kasus
  • Talent
  • Tanggung Jawab
  • Technology
  • Teknis
  • Teknologi
  • Teks
  • Template
  • TensorFlow
  • Terbaik
  • Terbaru
  • Terpercaya
  • Terukur
  • Tim
  • Tips
  • Tools
  • Transformasi
  • Trik
  • Troubleshooting
  • Tutorial
  • UMKM
  • Unlimited
  • Update
  • Uptime
  • Validasi
  • VPS
  • Vue.js
  • Waspada
  • Web
  • Web Development
  • Web Hosting
  • Website
  • Windows
  • WordPress
  • XAMPP

Resource

  • About us
  • Contact Us
  • Privacy Policy

© 2024 Lokerwfh.

No Result
View All Result
  • Indonesia
  • Website
  • Hosting
  • Laravel
  • Development
  • Bisnis

© 2024 Lokerwfh.