tutwuri
  • Error generating categories
  • Hosting
  • Indonesia
  • Website
  • Laravel
  • Bisnis
No Result
View All Result
tutwuri
  • Error generating categories
  • Hosting
  • Indonesia
  • Website
  • Laravel
  • Bisnis
No Result
View All Result
tutwuri
No Result
View All Result
Home API

Laravel Sanctum Authentication Tutorial Indonesia: Keamanan API Laravel

Lyra Silverbrook by Lyra Silverbrook
September 10, 2025
in API, Keamanan, Laravel, Otentikasi, Tutorial
0
Share on FacebookShare on Twitter

Selamat datang, para developer Laravel di Indonesia! Di era digital ini, keamanan API menjadi krusial, apalagi jika aplikasi Anda menangani data sensitif. Artikel ini akan menjadi panduan lengkap tentang Laravel Sanctum Authentication Tutorial Indonesia, khususnya bagaimana Anda dapat mengamankan API Laravel Anda dengan Sanctum. Kita akan membahas mulai dari konsep dasar, instalasi, konfigurasi, hingga contoh implementasi yang praktis. Jadi, siapkan kopi Anda dan mari kita mulai!

1. Apa itu Laravel Sanctum dan Mengapa Penting untuk Keamanan API Laravel Anda?

Sebelum kita menyelam lebih dalam ke kode, mari kita pahami dulu apa itu Laravel Sanctum dan mengapa Anda harus mempertimbangkannya untuk aplikasi Anda.

Laravel Sanctum adalah package ringan yang menyediakan sistem otentikasi berbasis token untuk aplikasi Single Page Applications (SPA), aplikasi mobile, dan API. Intinya, Sanctum memungkinkan Anda untuk mengautentikasi pengguna menggunakan token API, bukan sesi atau cookie tradisional.

Mengapa penting untuk keamanan API Laravel Anda?

Related Post

Integrasi CRM dengan Sistem Akuntansi di Indonesia: Efisiensi Bisnis Tanpa Batas

December 6, 2025

Cara Membuat Model AI dengan Tensorflow: Panduan Lengkap untuk Pemula

December 2, 2025

AI untuk Prediksi Harga Saham di Indonesia: Analisis Data untuk Investasi Cerdas

December 2, 2025

Contoh Project Laravel Open Source: Inspirasi & Referensi Kode

November 30, 2025
  • Aman untuk SPA dan Aplikasi Mobile: Sanctum dirancang khusus untuk aplikasi yang tidak menggunakan sesi atau cookie tradisional. Ini membuatnya ideal untuk SPA yang dibangun dengan Vue.js, React, atau Angular, serta aplikasi mobile yang menggunakan API sebagai backend.
  • Proteksi CSRF: Sanctum menyediakan proteksi otomatis terhadap serangan Cross-Site Request Forgery (CSRF) pada API Anda.
  • Granular Access Control: Anda dapat memberikan izin akses yang lebih spesifik kepada token API, misalnya token hanya bisa digunakan untuk membaca data, bukan mengubahnya.
  • Skalabilitas: Sanctum ringan dan efisien, yang berarti tidak akan memberatkan performa aplikasi Anda, bahkan saat menangani banyak pengguna.
  • Sederhana dan Mudah Digunakan: Laravel Sanctum sangat mudah diinstal dan dikonfigurasi, memungkinkan Anda untuk dengan cepat mengamankan API Laravel Anda tanpa perlu berinvestasi banyak waktu dan usaha.

Dengan kata lain, Laravel Sanctum Authentication Tutorial Indonesia ini akan membekali Anda dengan pengetahuan untuk membangun API yang aman, skalabel, dan mudah dikelola.

2. Persiapan Awal: Instalasi dan Konfigurasi Laravel Sanctum untuk API Anda

Sebelum kita bisa menggunakan Sanctum, kita perlu menginstalnya dan mengkonfigurasinya di proyek Laravel kita. Ikuti langkah-langkah berikut:

2.1. Instalasi Sanctum:

Buka terminal Anda dan arahkan ke direktori proyek Laravel Anda. Kemudian, jalankan perintah berikut untuk menginstal Sanctum menggunakan Composer:

composer require laravel/sanctum

2.2. Migrasi Database:

Setelah instalasi selesai, Anda perlu menjalankan migrasi database untuk membuat tabel yang dibutuhkan oleh Sanctum. Jalankan perintah berikut:

php artisan migrate

Ini akan membuat tabel personal_access_tokens di database Anda. Tabel ini akan digunakan untuk menyimpan token API yang dihasilkan oleh Sanctum.

2.3. Konfigurasi Model User:

Buka model AppModelsUser Anda dan tambahkan trait HasApiTokens dari Sanctum. Ini akan menambahkan beberapa metode penting ke model User Anda untuk mengelola token API.

<?php

namespace AppModels;

use IlluminateContractsAuthMustVerifyEmail;
use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateNotificationsNotifiable;
use LaravelSanctumHasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, HasFactory, Notifiable;

    // ...
}

2.4. Konfigurasi Middleware:

Pastikan middleware EnsureFrontendRequestsAreStateful berada dalam daftar middleware global di app/Http/Kernel.php. Ini penting untuk memastikan bahwa permintaan dari frontend aplikasi Anda (SPA atau aplikasi mobile) ditangani dengan benar.

protected $middleware = [
    // ...
    AppHttpMiddlewareTrustProxies::class,
    AppHttpMiddlewarePreventRequestsDuringMaintenance::class,
    IlluminateFoundationHttpMiddlewareValidatePostSize::class,
    AppHttpMiddlewareTrimStrings::class,
    IlluminateFoundationHttpMiddlewareConvertEmptyStringsToNull::class,
    AppHttpMiddlewareEnsureFrontendRequestsAreStateful::class, // Tambahkan ini
];

Jika Anda tidak menggunakan SPA, Anda bisa menghapus middleware ini dari daftar global dan menambahkannya ke route groups yang membutuhkan otentikasi Sanctum.

2.5. Publikasi Konfigurasi (Opsional):

Jika Anda ingin menyesuaikan konfigurasi Sanctum, Anda dapat mempublikasikan file konfigurasinya menggunakan perintah berikut:

php artisan vendor:publish --tag=sanctum-config

Ini akan membuat file config/sanctum.php yang dapat Anda edit sesuai kebutuhan Anda.

Dengan mengikuti langkah-langkah ini, Anda telah berhasil menginstal dan mengkonfigurasi Laravel Sanctum di proyek Anda. Sekarang, kita siap untuk mulai menghasilkan dan menggunakan token API!

3. Membuat dan Menggunakan Token API dengan Laravel Sanctum

Setelah konfigurasi selesai, bagian terpenting dari Laravel Sanctum Authentication Tutorial Indonesia ini adalah mempelajari bagaimana membuat dan menggunakan token API.

3.1. Membuat Token API:

Untuk membuat token API, Anda dapat menggunakan metode createToken yang disediakan oleh trait HasApiTokens di model User. Biasanya, proses ini dilakukan saat pengguna berhasil login atau mendaftar.

Berikut adalah contoh cara membuat token API:

use IlluminateSupportFacadesAuth;

Route::post('/login', function (Request $request) {
    if (Auth::attempt($request->only('email', 'password'))) {
        $user = Auth::user();
        $token = $user->createToken('auth_token')->plainTextToken; // Nama token (bisa disesuaikan)
        return response()->json([
            'access_token' => $token,
            'token_type' => 'Bearer',
        ]);
    }

    return response()->json(['message' => 'Invalid Credentials'], 401);
});

Dalam contoh ini:

  • Auth::attempt($request->only('email', 'password')) mencoba untuk mengautentikasi pengguna berdasarkan email dan password yang diberikan.
  • Jika autentikasi berhasil, kita mendapatkan instance User dari Auth::user().
  • $user->createToken('auth_token')->plainTextToken membuat token API baru untuk pengguna. Parameter 'auth_token' adalah nama token, yang bisa Anda sesuaikan sesuai kebutuhan Anda. plainTextToken mengembalikan token yang belum di-hash dan harus dikirimkan ke klien. Simpan token ini dengan aman di sisi klien.
  • Kita mengembalikan token API dan tipe token (Bearer) dalam format JSON.

Penting: Simpan plainTextToken dengan aman di sisi klien (misalnya, di local storage atau cookies) karena Anda tidak akan bisa melihatnya lagi setelah proses ini.

3.2. Menggunakan Token API untuk Mengakses API yang Dilindungi:

Setelah Anda memiliki token API, Anda dapat menggunakannya untuk mengakses API yang dilindungi oleh Sanctum. Caranya adalah dengan mengirimkan token API di header Authorization dengan tipe Bearer.

Contoh:

Authorization: Bearer <token_api_anda>

Di Laravel, Anda dapat menggunakan middleware auth:sanctum untuk melindungi route API.

Contoh:

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

Dalam contoh ini:

  • Route::middleware('auth:sanctum') menerapkan middleware auth:sanctum ke route /user.
  • Hanya pengguna yang memiliki token API yang valid yang dapat mengakses route ini.
  • Di dalam closure, kita dapat mengakses instance User yang telah diautentikasi menggunakan $request->user().

3.3. Mencabut Token API:

Ada kalanya Anda perlu mencabut token API, misalnya saat pengguna logout atau jika token tersebut dicuri. Sanctum menyediakan beberapa cara untuk mencabut token API:

  • Mencabut token tertentu:
$token = $request->user()->tokens()->where('id', $tokenId)->first();
if($token){
    $token->delete();
}
  • Mencabut semua token pengguna:
$request->user()->tokens()->delete();
  • Mencabut token saat ini:
$request->user()->currentAccessToken()->delete();

Dengan mencabut token, Anda memastikan bahwa token tersebut tidak lagi valid dan tidak dapat digunakan untuk mengakses API yang dilindungi.

4. Implementasi: Studi Kasus Sederhana Otentikasi API dengan Sanctum

Mari kita lihat contoh implementasi sederhana untuk mengilustrasikan cara kerja Sanctum. Kita akan membuat dua route: satu untuk login dan satu lagi untuk mendapatkan informasi pengguna yang dilindungi oleh otentikasi Sanctum.

4.1. Route Login:

Seperti yang sudah dicontohkan sebelumnya, route ini menerima email dan password, mengautentikasi pengguna, dan mengembalikan token API.

use IlluminateSupportFacadesAuth;
use IlluminateHttpRequest;
use AppModelsUser;
use IlluminateSupportFacadesHash;

Route::post('/register', function (Request $request) {
    $request->validate([
        'name' => 'required|string',
        'email' => 'required|string|email|unique:users',
        'password' => 'required|string|min:6'
    ]);

    $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',
    ]);
});

Route::post('/login', function (Request $request) {
    if (Auth::attempt($request->only('email', 'password'))) {
        $user = Auth::user();
        $token = $user->createToken('auth_token')->plainTextToken;
        return response()->json([
            'access_token' => $token,
            'token_type' => 'Bearer',
        ]);
    }

    return response()->json(['message' => 'Invalid Credentials'], 401);
});

4.2. Route User (Dilindungi Sanctum):

Route ini hanya dapat diakses oleh pengguna yang telah diautentikasi dengan token API yang valid.

use IlluminateHttpRequest;
use IlluminateSupportFacadesRoute;

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

Route::middleware('auth:sanctum')->post('/logout', function (Request $request) {
    $request->user()->currentAccessToken()->delete();
    return response()->json(['message' => 'Successfully logged out']);
});

Cara Menguji:

  1. Register Pengguna: Gunakan endpoint /register untuk mendaftarkan pengguna baru.
  2. Login: Gunakan endpoint /login dengan email dan password pengguna yang baru terdaftar. Anda akan menerima token API.
  3. Akses /user: Kirim permintaan GET ke endpoint /user dengan header Authorization: Bearer <token_api_anda>. Anda akan menerima informasi pengguna yang diautentikasi.
  4. Logout: Kirim permintaan POST ke endpoint /logout dengan header Authorization: Bearer <token_api_anda>. Token akan dicabut.
  5. Coba Akses /user Lagi: Kirim lagi permintaan GET ke endpoint /user dengan header Authorization: Bearer <token_api_anda>. Anda akan menerima error karena token sudah tidak valid.

5. Keamanan Tingkat Lanjut: Granular Access Control dengan Abilities (Kemampuan)

Sanctum memungkinkan Anda untuk memberikan izin akses yang lebih spesifik ke token API menggunakan “Abilities” (Kemampuan). Ini memungkinkan Anda untuk mengontrol apa saja yang dapat dilakukan oleh token tertentu.

5.1. Mendefinisikan Kemampuan:

Ketika membuat token, Anda dapat menentukan daftar kemampuan yang diizinkan untuk token tersebut.

Contoh:

$token = $user->createToken('auth_token', ['read', 'create'])->plainTextToken;

Dalam contoh ini, token yang dibuat hanya memiliki kemampuan read dan create.

5.2. Memeriksa Kemampuan di Route:

Anda dapat menggunakan metode tokenCan pada instance Request untuk memeriksa apakah token memiliki kemampuan tertentu.

Contoh:

Route::middleware(['auth:sanctum', 'ability:read'])->get('/posts', function (Request $request) {
    if ($request->user()->tokenCan('read')) {
        // Lakukan sesuatu
        return response()->json(['posts' => Post::all()]);
    }
    return response()->json(['message' => 'Unauthorized.'], 403);
});

Dalam contoh ini:

  • middleware(['auth:sanctum', 'ability:read']) memastikan bahwa pengguna telah diautentikasi dan memiliki kemampuan read.
  • $request->user()->tokenCan('read') memeriksa apakah token pengguna memiliki kemampuan read.

5.3. Contoh Kasus:

Bayangkan Anda memiliki aplikasi yang memungkinkan pengguna untuk membaca dan membuat postingan. Anda dapat membuat dua jenis token:

  • Token untuk Aplikasi Mobile: Hanya memiliki kemampuan read untuk membaca postingan.
  • Token untuk Administrator: Memiliki kemampuan read dan create untuk membaca dan membuat postingan.

Dengan menggunakan kemampuan, Anda dapat memastikan bahwa setiap token hanya memiliki izin akses yang diperlukan.

6. Tips dan Trik: Optimasi dan Best Practices Keamanan API Laravel

Selain implementasi dasar, ada beberapa tips dan trik yang dapat Anda terapkan untuk mengoptimalkan dan meningkatkan keamanan API Laravel Anda dengan Sanctum:

  • Gunakan HTTPS: Pastikan semua komunikasi antara klien dan API Anda menggunakan HTTPS untuk mengenkripsi data yang dikirimkan.
  • Validasi Input: Selalu validasi input yang diterima dari klien untuk mencegah serangan injeksi.
  • Rate Limiting: Terapkan rate limiting untuk membatasi jumlah permintaan dari klien dalam periode waktu tertentu untuk mencegah serangan brute force.
  • Secure Storage Token: Simpan token API dengan aman di sisi klien. Hindari menyimpan token di local storage jika memungkinkan (gunakan cookies dengan flag HttpOnly dan Secure).
  • Token Expiration: Pertimbangkan untuk menambahkan masa berlaku (expiration) pada token API untuk meningkatkan keamanan. Anda bisa melakukan ini dengan membuat kolom expires_at pada tabel personal_access_tokens dan melakukan query untuk memastikan token belum expired sebelum mengizinkan akses.
  • Monitoring Log: Pantau log aplikasi Anda secara teratur untuk mendeteksi aktivitas yang mencurigakan.
  • Regular Updates: Selalu perbarui Laravel dan package Sanctum Anda ke versi terbaru untuk mendapatkan perbaikan keamanan terbaru.
  • Centralized Authentication Server (Passport): Jika Anda membutuhkan fitur otentikasi yang lebih kompleks, seperti otentikasi OAuth 2.0, pertimbangkan untuk menggunakan Laravel Passport, yang menyediakan otentikasi server yang lebih lengkap. Namun, untuk kasus sederhana, Sanctum sudah sangat memadai.

7. Troubleshooting: Mengatasi Masalah Umum dengan Laravel Sanctum

Meskipun Sanctum mudah digunakan, Anda mungkin menghadapi beberapa masalah saat menggunakannya. Berikut adalah beberapa masalah umum dan solusinya:

  • Masalah CSRF: Pastikan middleware EnsureFrontendRequestsAreStateful dikonfigurasi dengan benar. Periksa juga konfigurasi CORS Anda.
  • Token Tidak Valid: Pastikan token API dikirimkan dengan benar di header Authorization. Periksa juga apakah token belum dicabut atau kedaluwarsa.
  • Middleware Tidak Bekerja: Pastikan middleware auth:sanctum diterapkan ke route yang benar. Periksa juga konfigurasi middleware Anda di app/Http/Kernel.php.
  • Model User Tidak Ditemukan: Pastikan Anda telah mengimpor trait HasApiTokens ke model User Anda dengan benar.
  • Database Migrasi Gagal: Periksa konfigurasi database Anda dan pastikan Anda memiliki izin yang cukup untuk membuat tabel.

Jika Anda masih mengalami masalah, periksa dokumentasi resmi Laravel Sanctum atau cari solusi di forum dan komunitas Laravel.

8. Kesimpulan: Laravel Sanctum Sebagai Solusi Keamanan API Laravel Terbaik

Dalam Laravel Sanctum Authentication Tutorial Indonesia ini, kita telah membahas secara mendalam tentang Laravel Sanctum dan bagaimana Anda dapat menggunakannya untuk mengamankan API Laravel Anda. Mulai dari instalasi, konfigurasi, pembuatan token, penggunaan token, hingga keamanan tingkat lanjut dengan kemampuan (abilities).

Sanctum adalah solusi otentikasi yang ringan, aman, dan mudah digunakan untuk aplikasi SPA, aplikasi mobile, dan API Laravel Anda. Dengan mengikuti panduan ini, Anda seharusnya sekarang memiliki pemahaman yang kuat tentang cara mengamankan API Laravel Anda dengan Sanctum.

Jangan ragu untuk bereksperimen dan mencoba berbagai fitur Sanctum untuk menemukan konfigurasi yang paling sesuai dengan kebutuhan Anda. Keamanan API adalah proses yang berkelanjutan, jadi pastikan Anda selalu memperbarui pengetahuan Anda dan menerapkan best practices keamanan terbaru.

Selamat coding, dan semoga API Laravel Anda selalu aman!

Tags: APIAPI LaravelAuthenticationIndonesiaJWTKeamananLaravelLaravel SanctumSanctumtutorial
Lyra Silverbrook

Lyra Silverbrook

Related Posts

Akuntansi

Integrasi CRM dengan Sistem Akuntansi di Indonesia: Efisiensi Bisnis Tanpa Batas

by Lyra Silverbrook
December 6, 2025
AI

Cara Membuat Model AI dengan Tensorflow: Panduan Lengkap untuk Pemula

by Finnian Quickthorn
December 2, 2025
AI

AI untuk Prediksi Harga Saham di Indonesia: Analisis Data untuk Investasi Cerdas

by Jasper Nightshade
December 2, 2025
Next Post

Contoh Project Laravel Sederhana untuk Pemula: Aplikasi Blog dengan Laravel

Leave a Reply Cancel reply

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

Recommended

Contoh Project Web Development Sederhana: Inspirasi dan Tutorial Lengkap

June 12, 2025

Cara Implementasi Authentication di Laravel: Keamanan Website Terjamin

August 1, 2025

Contoh Website Company Profile Sederhana dengan HTML CSS: Inspirasi Desain Modern

July 30, 2025

Contoh Implementasi AI dalam Bisnis UKM: Studi Kasus dan Peluang Bisnis

June 20, 2025

Perbandingan CRM Open Source dan Berbayar: Pilih Sesuai Anggaran dan Kebutuhan

June 5, 2026

Contoh Implementasi CRM yang Sukses di Indonesia: Inspirasi untuk Bisnis Anda

June 5, 2026

Training CRM untuk Tim Sales dan Marketing: Tingkatkan Kompetensi dan Produktivitas

June 5, 2026

Harga Software CRM di Indonesia per Bulan: Perbandingan dan Pilihan Terbaik

June 5, 2026

tutwuri

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

  • Perbandingan CRM Open Source dan Berbayar: Pilih Sesuai Anggaran dan Kebutuhan
  • Contoh Implementasi CRM yang Sukses di Indonesia: Inspirasi untuk Bisnis Anda
  • Training CRM untuk Tim Sales dan Marketing: Tingkatkan Kompetensi dan Produktivitas

Categories

  • AI
  • Akuntansi
  • Algoritma
  • Alternatif
  • Analisis
  • and separated by commas: Hosting
  • API
  • Aplikasi
  • Asuransi
  • Authentication
  • Backend
  • Bahasa Indonesia
  • Belajar
  • Berita
  • Biaya
  • Bisnis
  • Blog
  • Bootstrap
  • Branding
  • Bulanan
  • Business
  • Cepat
  • Chatbot
  • ChatGPT
  • Cloud
  • CMS
  • Command
  • Contoh
  • CPanel
  • CRM
  • CRUD
  • CSS
  • Data
  • Database
  • Debugging
  • Deployment
  • Desain
  • Design
  • Developer
  • Development
  • Digital
  • Dokumentasi
  • Domain
  • Download
  • Dukungan
  • E-commerce
  • Efektif
  • Efektivitas
  • Efisiensi
  • Email
  • Error
  • Error generating categories
  • Etika
  • Event
  • Excel
  • Fashion
  • File
  • Fitur
  • Fleksibilitas
  • Framework
  • Freelance
  • Frontend
  • Fungsional
  • Gambar
  • Game
  • Garansi
  • Generatif
  • Google
  • Gratis
  • Harga
  • Here are 5 categories
  • Here are 5 categories based on the article titles
  • Hosting
  • HTML
  • Ide
  • Implementasi
  • Indonesia
  • Industri
  • Inovasi
  • Inspirasi
  • Integrasi
  • Investasi
  • Jakarta
  • JavaScript
  • Kapasitas
  • Karir
  • Kasus
  • Keamanan
  • Keandalan
  • Keberhasilan
  • Kebutuhan
  • Kecepatan
  • Kepuasan
  • Kerugian
  • Kesehatan
  • Kinerja
  • Kolaborasi
  • Komunikasi
  • Komunitas
  • Konfigurasi
  • Konstruksi
  • Konten
  • Kota
  • Kreativitas
  • Kualitas
  • Kustomisasi
  • Laporan
  • Laravel
  • Layanan
  • Lokasi
  • Machine Learning
  • Mahasiswa
  • Manajemen
  • Manajemen Proyek
  • Manfaat
  • Manufaktur
  • Marketing
  • Masa Depan
  • Masyarakat
  • Media Sosial
  • Migrasi
  • Migration
  • Mobile
  • Model
  • Monitoring
  • Murah
  • Negosiasi
  • Node JS
  • Online
  • Open Source
  • Optimasi
  • Otentikasi
  • Otomatis
  • Otomatisasi
  • Otomotif
  • Panduan
  • Pariwisata
  • Payment Gateway
  • Pekerjaan
  • Pelajar
  • Pelanggan
  • Pelatihan
  • Peluang
  • Pemasaran
  • Pemrograman
  • Pemula
  • Pendidikan
  • Pengambilan Keputusan
  • Pengembangan
  • Pengguna
  • Penggunaan
  • Penghasilan
  • Penipuan
  • Penjualan
  • Perbandingan
  • Perbedaan
  • Performa
  • Personalisasi
  • Pertumbuhan
  • Perubahan
  • PHP
  • Pilihan
  • Plugin
  • Portfolio
  • Prediksi
  • Produktivitas
  • Profesional
  • Programmer
  • Promo
  • Prospek
  • Python
  • Queue
  • Rekomendasi
  • Responsive
  • Retensi
  • Review
  • SEO
  • Sertifikat
  • Server
  • Sistem
  • Skalabilitas
  • Skill
  • Software
  • Solusi
  • SSD
  • SSL
  • Stabilitas
  • Startup
  • Strategi
  • Syarat
  • Tanggung Jawab
  • Tantangan
  • Technology
  • Teknologi
  • Template
  • Terbaik
  • Terbaru
  • Terpercaya
  • Testimoni
  • Tips
  • Tools
  • Traffic
  • Trafik
  • Tren
  • Troubleshooting
  • Tutorial
  • UI
  • UKM
  • Unlimited
  • Upload
  • Uptime
  • using one word per category: Software
  • using only one word from the list provided per category
  • Validasi
  • Video
  • VPS
  • Web
  • Website
  • WordPress

Resource

  • About us
  • Contact Us
  • Privacy Policy

© 2024 tutwuri.

No Result
View All Result
  • Error generating categories
  • Hosting
  • Indonesia
  • Website
  • Laravel
  • Bisnis

© 2024 tutwuri.