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 Passport Tutorial: Otentikasi API dengan Mudah dan Aman

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

Laravel Passport adalah paket OAuth2 server lengkap yang menyediakan cara mudah dan aman untuk mengotentikasi API Anda. Jika Anda sedang membangun aplikasi dengan backend Laravel yang harus diakses oleh aplikasi lain (misalnya, aplikasi mobile, aplikasi pihak ketiga), maka Laravel Passport adalah solusi yang tepat untuk Anda. Tutorial ini akan memandu Anda langkah demi langkah melalui proses instalasi, konfigurasi, dan penggunaan Laravel Passport untuk mengamankan API Anda.

1. Pendahuluan: Apa itu Laravel Passport dan Mengapa Anda Membutuhkannya?

Sebelum kita mulai ke tutorial Laravel Passport, mari kita pahami terlebih dahulu apa itu Laravel Passport dan mengapa itu menjadi penting. Dalam dunia pengembangan web modern, API (Application Programming Interface) memainkan peran krusial dalam menghubungkan berbagai aplikasi dan layanan. API memungkinkan aplikasi untuk berkomunikasi dan berbagi data satu sama lain. Namun, keamanan menjadi prioritas utama ketika kita berurusan dengan API. Bagaimana kita memastikan bahwa hanya aplikasi yang sah yang dapat mengakses API kita?

Di sinilah Laravel Passport hadir. Laravel Passport adalah implementasi OAuth2 server untuk Laravel. OAuth2 adalah standar otorisasi yang memungkinkan aplikasi pihak ketiga mengakses sumber daya dari server sumber daya (dalam hal ini, API Laravel Anda) atas nama pengguna. Laravel Passport menyederhanakan proses implementasi OAuth2 di aplikasi Laravel Anda, sehingga Anda dapat fokus pada pengembangan fitur inti tanpa harus khawatir tentang kompleksitas keamanan.

Manfaat Menggunakan Laravel Passport:

Related Post

Cara Membuat Model AI dengan Tensorflow: Panduan Lengkap untuk Pemula

December 2, 2025

Contoh Project Laravel Open Source: Inspirasi & Referensi Kode

November 30, 2025

Komunitas Laravel Developer Indonesia: Bergabung & Belajar Bersama!

November 30, 2025

Cara Deploy Aplikasi Laravel ke Server: Panduan Lengkap Hingga Website Online

November 30, 2025
  • Keamanan yang ditingkatkan: Laravel Passport menyediakan lapisan keamanan tambahan untuk API Anda dengan menggunakan standar OAuth2.
  • Kemudahan implementasi: Dibandingkan dengan implementasi OAuth2 manual, Laravel Passport menawarkan kemudahan dan kecepatan dalam proses implementasi.
  • Fleksibilitas: Laravel Passport mendukung berbagai jenis pemberian otorisasi (grant types), sehingga Anda dapat memilih yang paling sesuai dengan kebutuhan aplikasi Anda.
  • Pengelolaan token yang mudah: Laravel Passport mengelola pembuatan, penyimpanan, dan penyegaran token secara otomatis, sehingga Anda tidak perlu mengelola token secara manual.

Dengan menggunakan Laravel Passport, Anda dapat mengamankan API Anda dengan mudah dan aman, sambil tetap fokus pada pengembangan fitur aplikasi Anda.

2. Persiapan: Instalasi Laravel dan Persiapan Database

Sebelum memulai Laravel Passport Tutorial ini, pastikan Anda memiliki lingkungan pengembangan Laravel yang sudah siap. Jika belum, ikuti langkah-langkah berikut:

  • Instalasi Laravel: Gunakan Composer untuk membuat proyek Laravel baru:

    composer create-project --prefer-dist laravel/laravel passport-example
    cd passport-example
  • Konfigurasi Database: Ubah konfigurasi database di file .env Anda dengan informasi database Anda. Misalnya:

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=passport_example
    DB_USERNAME=root
    DB_PASSWORD=
  • Migrasi Database: Jalankan migrasi database untuk membuat tabel yang diperlukan:

    php artisan migrate

Pastikan Anda telah melakukan semua langkah di atas sebelum melanjutkan ke langkah berikutnya.

3. Instalasi dan Konfigurasi Laravel Passport: Langkah Demi Langkah

Setelah lingkungan pengembangan Laravel siap, saatnya untuk menginstal dan mengkonfigurasi Laravel Passport.

  • Instalasi Passport: Gunakan Composer untuk menginstal Laravel Passport:

    composer require laravel/passport
  • Migrasi Passport: Jalankan perintah Passport untuk menyiapkan tabel yang diperlukan untuk OAuth2:

    php artisan passport:install

    Perintah ini akan membuat tabel yang diperlukan dalam database Anda dan juga akan menghasilkan kunci enkripsi yang akan digunakan oleh Passport.

  • Konfigurasi AppUser Model: Tambahkan trait HasApiTokens ke model AppUser Anda:

    <?php
    
    namespace App;
    
    use IlluminateNotificationsNotifiable;
    use IlluminateFoundationAuthUser as Authenticatable;
    use LaravelPassportHasApiTokens;
    
    class User extends Authenticatable
    {
        use HasApiTokens, Notifiable;
    
        // ...
    }
  • Konfigurasi AuthServiceProvider: Daftarkan providers Passport di method boot pada AppProvidersAuthServiceProvider:

    <?php
    
    namespace AppProviders;
    
    use IlluminateSupportFacadesGate;
    use IlluminateFoundationSupportProvidersAuthServiceProvider as ServiceProvider;
    use LaravelPassportPassport;
    
    class AuthServiceProvider extends ServiceProvider
    {
        /**
         * The policy mappings for the application.
         *
         * @var array
         */
        protected $policies = [
            'AppModel' => 'AppPoliciesModelPolicy',
        ];
    
        /**
         * Register any authentication / authorization services.
         *
         * @return void
         */
        public function boot()
        {
            $this->registerPolicies();
    
            Passport::routes();
        }
    }
  • Memperbarui Driver Authentication: Ubah driver authentication di config/auth.php ke passport:

    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
    
        'api' => [
            'driver' => 'passport', // Ubah driver ke 'passport'
            'provider' => 'users',
        ],
    ],

Dengan langkah-langkah di atas, Anda telah berhasil menginstal dan mengkonfigurasi Laravel Passport di aplikasi Anda. Selanjutnya, kita akan membahas cara membuat client dan mengakses API yang dilindungi.

4. Membuat Client OAuth2: Mengizinkan Aplikasi Mengakses API Anda

Setelah Passport terinstal, Anda perlu membuat “client” OAuth2. Client ini merepresentasikan aplikasi yang akan meminta akses ke API Anda.

  • Membuat Client Melalui Artisan: Anda dapat membuat client baru melalui command line:

    php artisan passport:client

    Perintah ini akan meminta Anda untuk nama client dan URL redirect. URL redirect adalah URL di mana pengguna akan diarahkan setelah memberikan izin akses ke aplikasi Anda. Pastikan URL redirect ini sesuai dengan aplikasi yang akan mengakses API Anda.

  • Database Client: Informasi client yang Anda buat akan disimpan di tabel oauth_clients dalam database Anda. Anda akan melihat id, secret, dan redirect URL yang sangat penting untuk proses otorisasi.

  • Jenis Client: Passport mendukung dua jenis client yang umum:

    • Confidential Clients: Client ini memiliki secret yang harus dijaga kerahasiaannya. Digunakan untuk aplikasi yang berjalan di server, seperti aplikasi web.
    • Public Clients: Client ini tidak memiliki secret. Digunakan untuk aplikasi yang berjalan di perangkat pengguna, seperti aplikasi mobile.

Pastikan Anda memahami perbedaan antara kedua jenis client ini dan memilih yang sesuai dengan jenis aplikasi yang akan mengakses API Anda.

5. Menerapkan Autentikasi Pengguna: Membuat User dan Login

Sebelum mengamankan API dengan Passport, Anda perlu memiliki mekanisme autentikasi pengguna. Secara default, Laravel sudah menyediakan fitur autentikasi. Jika belum, Anda dapat menggunakan perintah berikut:

php artisan make:auth

Perintah ini akan membuat views dan controller yang diperlukan untuk registrasi dan login pengguna.

  • Registrasi Pengguna: Pastikan aplikasi Anda memiliki form registrasi yang memungkinkan pengguna untuk membuat akun.

  • Login Pengguna: Pastikan aplikasi Anda memiliki form login yang memungkinkan pengguna untuk masuk ke akun mereka.

  • Menghubungkan dengan API: Setelah pengguna berhasil login, Anda dapat menggunakan Passport untuk menghasilkan token akses yang akan digunakan untuk mengakses API.

6. Membuat Rute API yang Dilindungi: Mengamankan Endpoint dengan Middleware

Setelah memiliki client OAuth2 dan sistem autentikasi pengguna, Anda dapat mulai mengamankan rute API Anda dengan middleware auth:api.

  • Definisi Rute: Definisikan rute API Anda di file routes/api.php. Misalnya:

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

    Middleware auth:api akan memastikan bahwa hanya pengguna yang terautentikasi dengan token akses yang valid yang dapat mengakses rute ini.

  • Mengakses Data Pengguna: Di dalam rute yang dilindungi, Anda dapat mengakses informasi pengguna yang terautentikasi melalui $request->user().

  • Menggunakan Scopes (Opsional): Anda dapat menggunakan scopes untuk memberikan izin akses yang lebih spesifik ke API Anda. Misalnya, Anda dapat membuat scope read-profile yang memungkinkan aplikasi untuk membaca profil pengguna, tetapi tidak dapat mengubahnya.

    Passport::tokensCan([
        'read-profile' => 'Read your profile information.',
        'update-profile' => 'Update your profile information.',
    ]);
    
    Route::middleware('auth:api', 'scopes:read-profile')->get('/profile', function (Request $request) {
        return $request->user()->profile;
    });

    Dalam contoh di atas, rute /profile hanya dapat diakses oleh aplikasi yang memiliki token akses dengan scope read-profile.

7. Meminta Token Akses: Proses Otorisasi OAuth2

Untuk mengakses API yang dilindungi, aplikasi perlu mendapatkan token akses melalui proses otorisasi OAuth2. Laravel Passport mendukung beberapa jenis pemberian otorisasi (grant types), termasuk:

  • Password Grant: Pengguna memberikan username dan password mereka langsung ke aplikasi. Jenis pemberian otorisasi ini cocok untuk aplikasi yang terpercaya, seperti aplikasi mobile yang Anda buat sendiri. (Tidak Disarankan di Produksi: Hanya untuk development karena kerentanan keamanan)

    // Contoh Endpoint untuk meminta token dengan Password Grant (Hanya untuk Development!)
    Route::post('/oauth/token', 'AppHttpControllersAuthLoginController@issueToken');
    
    // LoginController.php (Contoh sederhana, sesuaikan dengan kebutuhan)
    public function issueToken(Request $request)
    {
        $this->validate($request, [
            'username' => 'required',
            'password' => 'required',
        ]);
    
        $params = [
            'grant_type' => 'password',
            'client_id' => 'YOUR_CLIENT_ID', // Ganti dengan Client ID Anda
            'client_secret' => 'YOUR_CLIENT_SECRET', // Ganti dengan Client Secret Anda
            'username' => request('username'),
            'password' => request('password'),
            'scope' => '*', // Sesuaikan scope sesuai kebutuhan
        ];
    
        $request->request->add($params);
    
        $proxy = Request::create(
            'oauth/token',
            'POST'
        );
    
        return Route::dispatch($proxy);
    }

    PERHATIAN: Kode di atas hanyalah contoh sederhana. JANGAN gunakan Password Grant di lingkungan produksi karena ini tidak aman. Gunakan metode otorisasi yang lebih aman seperti Authorization Code Grant. Anda perlu mengganti YOUR_CLIENT_ID dan YOUR_CLIENT_SECRET dengan ID dan Secret dari client yang Anda buat.

  • Authorization Code Grant: Pengguna diarahkan ke server otorisasi (aplikasi Laravel Anda) untuk login dan memberikan izin akses ke aplikasi. Setelah itu, server otorisasi akan mengembalikan kode otorisasi ke aplikasi. Aplikasi kemudian dapat menggunakan kode otorisasi ini untuk meminta token akses. Jenis pemberian otorisasi ini lebih aman dan direkomendasikan untuk aplikasi pihak ketiga.

    • Redirect ke Halaman Login: Aplikasi mengarahkan pengguna ke /oauth/authorize?client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPES. Ganti CLIENT_ID, REDIRECT_URI, dan SCOPES dengan nilai yang sesuai.
    • Pengguna Login dan Menyetujui: Pengguna login ke aplikasi Laravel dan melihat halaman persetujuan yang menanyakan apakah mereka ingin memberikan akses ke aplikasi.
    • Kode Otorisasi Dikembalikan: Jika pengguna menyetujui, aplikasi Laravel mengarahkan mereka kembali ke REDIRECT_URI dengan kode otorisasi di dalam URL.
    • Aplikasi Meminta Token: Aplikasi menggunakan kode otorisasi untuk meminta token akses dari endpoint /oauth/token.
  • Client Credentials Grant: Aplikasi meminta token akses atas namanya sendiri, tanpa melibatkan pengguna. Jenis pemberian otorisasi ini cocok untuk aplikasi backend-to-backend.

  • Implicit Grant: (Tidak direkomendasikan karena kurang aman).

Pilih jenis pemberian otorisasi yang paling sesuai dengan kebutuhan dan keamanan aplikasi Anda.

8. Mengirim Request ke API dengan Token Akses: Menggunakan Token untuk Autentikasi

Setelah mendapatkan token akses, aplikasi dapat menggunakannya untuk mengakses API yang dilindungi. Token akses harus dikirim dalam header Authorization dengan format Bearer <token>.

  • Header Authorization: Tambahkan header Authorization ke setiap request API:

    Authorization: Bearer <token>

    Ganti <token> dengan token akses yang Anda dapatkan.

  • Contoh Menggunakan curl:

    curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" http://your-app.com/api/user
  • Contoh Menggunakan JavaScript (axios):

    axios.get('/api/user', {
        headers: {
            Authorization: 'Bearer YOUR_ACCESS_TOKEN'
        }
    }).then(response => {
        console.log(response.data);
    });

Dengan menyertakan token akses dalam header Authorization, aplikasi dapat membuktikan bahwa mereka telah diotorisasi untuk mengakses API Anda.

9. Refreshing Token: Memperpanjang Masa Berlaku Token Akses

Token akses memiliki masa berlaku terbatas. Setelah masa berlaku token habis, aplikasi perlu mendapatkan token akses baru. Laravel Passport menyediakan mekanisme untuk memperbaharui token akses (refresh token).

  • Refresh Token: Saat Anda mendapatkan token akses, Anda juga akan menerima refresh token. Refresh token ini dapat digunakan untuk meminta token akses baru tanpa harus meminta pengguna untuk login lagi.

  • Meminta Token Baru: Kirim request ke endpoint /oauth/token dengan parameter berikut:

    grant_type: refresh_token
    refresh_token: YOUR_REFRESH_TOKEN
    client_id: YOUR_CLIENT_ID
    client_secret: YOUR_CLIENT_SECRET
    scope: *  // Sesuaikan dengan scope yang dibutuhkan

    Ganti YOUR_REFRESH_TOKEN, YOUR_CLIENT_ID, dan YOUR_CLIENT_SECRET dengan nilai yang sesuai.

  • Menyimpan Refresh Token: Simpan refresh token dengan aman di aplikasi Anda.

Dengan menggunakan refresh token, aplikasi dapat memperpanjang masa berlaku token akses secara otomatis, tanpa mengganggu pengalaman pengguna.

10. Revoking Token: Mencabut Akses Aplikasi

Terkadang, Anda mungkin perlu mencabut akses aplikasi ke API Anda. Misalnya, jika aplikasi tersebut disusupi atau jika Anda tidak lagi ingin mengizinkan aplikasi tersebut mengakses API Anda. Laravel Passport menyediakan mekanisme untuk mencabut token akses dan refresh token.

  • Mencabut Token Akses: Anda dapat mencabut token akses dengan menghapus record yang sesuai dari tabel oauth_access_tokens.

  • Mencabut Refresh Token: Anda juga dapat mencabut refresh token dengan menghapus record yang sesuai dari tabel oauth_refresh_tokens.

  • Middleware untuk Verifikasi Token: Anda juga dapat menggunakan middleware untuk memverifikasi apakah token akses masih valid sebelum mengizinkan akses ke API.

Dengan mencabut token akses dan refresh token, Anda dapat memastikan bahwa aplikasi yang tidak sah tidak lagi dapat mengakses API Anda.

11. Keamanan Tambahan: Praktik Terbaik untuk Mengamankan API Anda

Selain menggunakan Laravel Passport, ada beberapa praktik terbaik tambahan yang dapat Anda terapkan untuk mengamankan API Anda:

  • Validasi Input: Selalu validasi input yang diterima dari API untuk mencegah serangan injection.
  • Sanitasi Output: Sanitasi output yang dikirim ke API untuk mencegah serangan XSS.
  • Gunakan HTTPS: Pastikan semua komunikasi dengan API menggunakan HTTPS untuk mengenkripsi data yang dikirim melalui jaringan.
  • Rate Limiting: Batasi jumlah request yang dapat dilakukan oleh aplikasi dalam periode waktu tertentu untuk mencegah serangan DDoS.
  • Monitor Log: Monitor log API secara teratur untuk mendeteksi aktivitas mencurigakan.
  • Gunakan Firewall: Gunakan firewall untuk melindungi server API dari akses yang tidak sah.
  • Update Libraries: Selalu perbarui Laravel dan paket-paket yang digunakan ke versi terbaru untuk mendapatkan perbaikan keamanan terbaru.

Dengan menerapkan praktik terbaik ini, Anda dapat meningkatkan keamanan API Anda secara signifikan dan melindungi data sensitif Anda.

12. Kesimpulan: Laravel Passport, Solusi Otentikasi API yang Kuat

Laravel Passport adalah solusi otentikasi API yang kuat dan fleksibel yang dapat membantu Anda mengamankan API Laravel Anda dengan mudah dan aman. Dengan mengikuti Laravel Passport Tutorial ini, Anda telah belajar cara menginstal, mengkonfigurasi, dan menggunakan Laravel Passport untuk mengamankan API Anda. Anda juga telah mempelajari beberapa praktik terbaik untuk meningkatkan keamanan API Anda secara keseluruhan.

Semoga tutorial ini bermanfaat bagi Anda. Selamat mencoba!

Tags: API AuthenticationAPI SecurityAuthenticationJWTLaravel PassportOAuth2Otentikasi APIPHPSecuritytutorial
Lyra Silverbrook

Lyra Silverbrook

Related Posts

AI

Cara Membuat Model AI dengan Tensorflow: Panduan Lengkap untuk Pemula

by Finnian Quickthorn
December 2, 2025
Contoh

Contoh Project Laravel Open Source: Inspirasi & Referensi Kode

by Elara Meadowlight
November 30, 2025
Belajar

Komunitas Laravel Developer Indonesia: Bergabung & Belajar Bersama!

by Elara Meadowlight
November 30, 2025
Next Post

Cara Deploy Laravel Project ke Hosting: Panduan Lengkap

Leave a Reply Cancel reply

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

Recommended

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

Contoh Project Web Development Sederhana: Inspirasi dan Tutorial Lengkap

June 12, 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.