m.techreview.click
  • Website
  • Indonesia
  • Laravel
  • Hosting
  • AI
  • Development
No Result
View All Result
m.techreview.click
  • Website
  • Indonesia
  • Laravel
  • Hosting
  • AI
  • Development
No Result
View All Result
m.techreview.click
No Result
View All Result
Home API

Cara Membuat API dengan Laravel dan Passport: Keamanan Terjamin

Elara by Elara
May 20, 2025
in API, Authentication, Development, Keamanan, Laravel
0
Share on FacebookShare on Twitter

Membuat API (Application Programming Interface) adalah kebutuhan krusial dalam pengembangan aplikasi modern. Dengan API, berbagai sistem dan aplikasi dapat saling berkomunikasi dan bertukar data dengan mudah. Laravel, sebagai framework PHP yang populer, menawarkan kemudahan dalam pembuatan API. Ditambah lagi dengan Laravel Passport, keamanan API Anda akan terjamin. Artikel ini akan memandu Anda langkah demi langkah tentang cara membuat API dengan Laravel dan Passport: Keamanan Terjamin.

1. Mengapa Laravel dan Passport untuk API?

Sebelum kita menyelami proses pembuatannya, mari kita pahami dulu mengapa kombinasi Laravel dan Passport menjadi pilihan ideal untuk membangun API yang aman dan handal.

  • Laravel: Framework PHP yang Efisien dan Cepat: Laravel menyediakan berbagai fitur dan alat yang mempermudah proses pengembangan API, mulai dari routing, middleware, hingga ORM (Object-Relational Mapping) Eloquent. Ini mempercepat development dan meminimalisir kesalahan.
  • Passport: OAuth2 Server Penuh untuk Otentikasi: Passport adalah paket OAuth2 server yang memungkinkan Anda mengimplementasikan otentikasi dan otorisasi API dengan mudah. OAuth2 adalah standar industri untuk delegasi akses, memastikan bahwa aplikasi pihak ketiga hanya dapat mengakses data yang telah diizinkan oleh pengguna. Dengan Passport, Anda dapat mengontrol siapa yang memiliki akses ke API Anda dan apa yang mereka boleh lakukan.

2. Persiapan Awal: Instalasi Laravel dan Konfigurasi Database

Langkah pertama adalah menyiapkan lingkungan pengembangan Laravel Anda. Jika Anda belum memiliki proyek Laravel, buat proyek baru dengan perintah berikut:

composer create-project --prefer-dist laravel/laravel nama-proyek-api
cd nama-proyek-api

Ganti nama-proyek-api dengan nama yang Anda inginkan untuk proyek Anda.

Related Post

Membuat API Authentication dengan Laravel Sanctum: Panduan Lengkap

June 26, 2025

Cara Meningkatkan Keamanan Website Laravel dari Serangan Hacker

June 26, 2025

Top 5 Package Laravel yang Mempermudah Pengembangan Website Anda

June 26, 2025

Cara Menggunakan Laravel Eloquent untuk Query Database: Panduan Lengkap

June 25, 2025

Setelah proyek Laravel berhasil dibuat, konfigurasikan database Anda. Buka file .env di direktori proyek Anda dan sesuaikan pengaturan database sesuai dengan konfigurasi database Anda. Contohnya:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nama_database_anda
DB_USERNAME=username_database_anda
DB_PASSWORD=password_database_anda

Pastikan Anda membuat database dengan nama yang sesuai di server database Anda. Anda bisa menggunakan phpMyAdmin, MySQL Workbench, atau tools lainnya untuk membuat database.

3. Instalasi dan Konfigurasi Laravel Passport: Memastikan Keamanan API

Setelah Laravel dan database siap, saatnya menginstal Laravel Passport. Gunakan perintah berikut di terminal:

composer require laravel/passport

Setelah instalasi selesai, jalankan perintah Passport untuk membuat tabel yang dibutuhkan dan generate encryption keys:

php artisan migrate
php artisan passport:install

Perintah php artisan passport:install akan membuat client ID dan secret keys yang akan digunakan untuk mengautentikasi aplikasi Anda. Pastikan untuk menyimpan client ID dan secret keys ini dengan aman.

Selanjutnya, tambahkan HasApiTokens trait ke model User Anda. Buka file app/Models/User.php dan tambahkan use statement dan trait:

<?php

namespace AppModels;

use IlluminateContractsAuthMustVerifyEmail;
use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateNotificationsNotifiable;
use LaravelPassportHasApiTokens; // Tambahkan use statement ini

class User extends Authenticatable
{
    use HasApiTokens, HasFactory, Notifiable; // Tambahkan HasApiTokens ke use statements
    // ...
}

Terakhir, daftarkan Passport sebagai middleware dalam aplikasi Anda. Buka file app/Http/Kernel.php dan tambahkan middleware Passport ke $routeMiddleware:

protected $routeMiddleware = [
    // ...
    'auth.basic' => IlluminateAuthMiddlewareAuthenticate::class,
    'bindings' => IlluminateRoutingMiddlewareSubstituteBindings::class,
    'cache.headers' => IlluminateHttpMiddlewareSetCacheHeaders::class,
    'can' => IlluminateAuthMiddlewareAuthorize::class,
    'guest' => AppHttpMiddlewareRedirectIfAuthenticated::class,
    'throttle' => IlluminateRoutingMiddlewareThrottleRequests::class,
    'verified' => IlluminateAuthMiddlewareEnsureEmailIsVerified::class,
    'auth:api' => LaravelPassportHttpMiddlewareAuthenticate::class, // Tambahkan baris ini
];

Dengan langkah ini, Passport siap digunakan untuk mengamankan API Anda.

4. Membuat Controller dan Route API: Membangun Endpoint yang Diperlukan

Sekarang, mari kita buat controller dan route API untuk menangani permintaan dari aplikasi klien. Contohnya, kita akan membuat API untuk menampilkan daftar pengguna.

Buat controller baru dengan perintah berikut:

php artisan make:controller Api/UserController

Ini akan membuat file app/Http/Controllers/Api/UserController.php. Buka file tersebut dan tambahkan kode berikut:

<?php

namespace AppHttpControllersApi;

use AppHttpControllersController;
use AppModelsUser;
use IlluminateHttpRequest;

class UserController extends Controller
{
    public function index()
    {
        $users = User::all();
        return response()->json($users);
    }
}

Controller ini memiliki satu method index yang mengambil semua data pengguna dari database dan mengembalikannya dalam format JSON.

Selanjutnya, definisikan route untuk API ini. Buka file routes/api.php dan tambahkan route berikut:

<?php

use AppHttpControllersApiUserController;
use IlluminateHttpRequest;
use IlluminateSupportFacadesRoute;

/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/

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

Route::get('/users', [UserController::class, 'index'])->middleware('auth:api');

Perhatikan bahwa route /users menggunakan middleware auth:api. Ini berarti bahwa hanya pengguna yang telah diautentikasi menggunakan Passport yang dapat mengakses endpoint ini. Route /user secara otomatis disediakan oleh Laravel untuk mengambil informasi pengguna yang sedang login.

5. Membuat Client untuk Akses API: Memberikan Akses ke Aplikasi Pihak Ketiga

Sebelum API dapat diakses, Anda perlu membuat client untuk aplikasi yang akan mengakses API. Client ini akan mendapatkan client ID dan secret key yang akan digunakan untuk meminta access token.

Anda dapat membuat client menggunakan Artisan console. Jalankan perintah berikut:

php artisan passport:client

Perintah ini akan meminta Anda untuk memasukkan nama client dan redirect URI. Nama client adalah nama aplikasi yang akan mengakses API. Redirect URI adalah URI tempat pengguna akan dialihkan setelah mereka mengizinkan aplikasi untuk mengakses akun mereka. Jika aplikasi Anda hanya menggunakan API secara internal dan tidak memerlukan redirect URI, Anda dapat memasukkan http://localhost.

Setelah Anda memasukkan informasi tersebut, Artisan akan membuat client baru dan menampilkan client ID dan secret key. Simpan client ID dan secret key ini dengan aman. Client ID dan Secret ini yang nantinya digunakan oleh aplikasi (misalnya aplikasi Android, iOS, atau website lain) untuk meminta access token dari API kita.

6. Otentikasi dengan Password Grant: Menggunakan Username dan Password untuk Mendapatkan Token

Salah satu cara paling umum untuk mengautentikasi pengguna adalah dengan menggunakan password grant. Dalam metode ini, pengguna memasukkan username dan password mereka, dan aplikasi akan mengirimkan kredensial ini ke server untuk mendapatkan access token.

Untuk menggunakan password grant, Anda perlu menambahkan Passport::tokensExpireIn() dan Passport::refreshTokensExpireIn() ke dalam AuthServiceProvider Anda. Buka file app/Providers/AuthServiceProvider.php dan tambahkan kode berikut ke method boot():

<?php

namespace AppProviders;

use IlluminateFoundationSupportProvidersAuthServiceProvider as ServiceProvider;
use IlluminateSupportFacadesGate;
use LaravelPassportPassport;

class AuthServiceProvider extends ServiceProvider
{
    /**
     * The policy mappings for the application.
     *
     * @var array
     */
    protected $policies = [
        // 'AppModelsModel' => 'AppPoliciesModelPolicy',
    ];

    /**
     * Register any authentication / authorization services.
     *
     * @return void
     */
    public function boot()
    {
        $this->registerPolicies();

        Passport::routes();

        Passport::tokensExpireIn(now()->addDays(15));
        Passport::refreshTokensExpireIn(now()->addDays(30));
    }
}

Kode ini akan mengatur access token agar kedaluwarsa dalam 15 hari dan refresh token agar kedaluwarsa dalam 30 hari. Sesuaikan durasi sesuai kebutuhan aplikasi Anda.

Untuk mendapatkan access token dengan password grant, aplikasi Anda perlu mengirimkan permintaan POST ke endpoint /oauth/token dengan parameter berikut:

  • grant_type: password
  • client_id: Client ID yang Anda dapatkan dari php artisan passport:client
  • client_secret: Secret key yang Anda dapatkan dari php artisan passport:client
  • username: Username pengguna
  • password: Password pengguna
  • scope: Scope (izin) yang diminta. Biasanya dikosongkan jika tidak ada scope spesifik.

Server akan merespons dengan JSON yang berisi access token, refresh token, dan informasi lainnya.

7. Menggunakan Refresh Token: Mendapatkan Token Baru Tanpa Meminta Kredensial Pengguna Lagi

Access token memiliki masa berlaku yang terbatas. Setelah access token kedaluwarsa, aplikasi Anda perlu mendapatkan token baru. Anda dapat menggunakan refresh token untuk mendapatkan access token baru tanpa meminta pengguna untuk memasukkan username dan password mereka lagi.

Untuk mendapatkan access token baru dengan refresh token, aplikasi Anda perlu mengirimkan permintaan POST ke endpoint /oauth/token dengan parameter berikut:

  • grant_type: refresh_token
  • refresh_token: Refresh token yang Anda dapatkan saat mendapatkan access token awal
  • client_id: Client ID yang Anda dapatkan dari php artisan passport:client
  • client_secret: Secret key yang Anda dapatkan dari php artisan passport:client
  • scope: Scope (izin) yang diminta. Biasanya dikosongkan jika tidak ada scope spesifik.

Server akan merespons dengan JSON yang berisi access token baru, refresh token baru, dan informasi lainnya.

8. Mengamankan API Lebih Lanjut: Tips dan Praktik Terbaik

Selain menggunakan Passport, ada beberapa tips dan praktik terbaik yang dapat Anda terapkan untuk mengamankan API Anda lebih lanjut:

  • Validasi Input: Selalu validasi semua input yang diterima oleh API Anda untuk mencegah serangan seperti SQL injection dan cross-site scripting (XSS). Laravel menyediakan fitur validasi yang komprehensif.
  • Gunakan HTTPS: Pastikan semua komunikasi antara aplikasi klien dan API Anda dienkripsi menggunakan HTTPS. Ini melindungi data dari penyadapan.
  • Rate Limiting: Batasi jumlah permintaan yang dapat dibuat oleh pengguna atau aplikasi dalam jangka waktu tertentu. Ini membantu mencegah serangan brute-force dan denial-of-service (DoS). Laravel memiliki fitur Throttle Requests middleware yang bisa digunakan untuk rate limiting.
  • Log Aktivitas API: Catat semua aktivitas API, termasuk permintaan, respons, dan kesalahan. Ini membantu Anda untuk memantau API Anda dan mendeteksi potensi masalah keamanan.
  • Gunakan JWT (JSON Web Tokens): Meskipun Passport sudah aman, penggunaan JWT sebagai format token memberikan fleksibilitas dan kemudahan integrasi dengan sistem lain. Passport menggunakan JWT secara default.
  • Implementasikan CORS (Cross-Origin Resource Sharing): Konfigurasikan CORS untuk mengontrol domain mana yang diizinkan untuk mengakses API Anda. Ini mencegah serangan cross-site request forgery (CSRF).

9. Contoh Kode: Implementasi Sederhana Otentikasi API dengan Password Grant

Berikut adalah contoh kode PHP sederhana yang menunjukkan cara mendapatkan access token menggunakan password grant dan kemudian menggunakan token tersebut untuk mengakses endpoint /users:

<?php

// Konfigurasi
$apiUrl = 'http://localhost:8000/oauth/token'; // Ganti dengan URL API Anda
$clientId = 'YOUR_CLIENT_ID'; // Ganti dengan Client ID Anda
$clientSecret = 'YOUR_CLIENT_SECRET'; // Ganti dengan Client Secret Anda
$username = '[email protected]'; // Ganti dengan username pengguna
$password = 'password'; // Ganti dengan password pengguna

// Mendapatkan Access Token
$postData = [
    'grant_type' => 'password',
    'client_id' => $clientId,
    'client_secret' => $clientSecret,
    'username' => $username,
    'password' => $password,
    'scope' => '',
];

$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);

$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'Error: ' . curl_error($ch);
    exit;
}

curl_close($ch);

$responseData = json_decode($response, true);

if (isset($responseData['access_token'])) {
    $accessToken = $responseData['access_token'];

    // Mengakses Endpoint Terproteksi
    $usersUrl = 'http://localhost:8000/api/users'; // Ganti dengan URL endpoint /users Anda

    $ch = curl_init($usersUrl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Authorization: Bearer ' . $accessToken,
    ]);

    $response = curl_exec($ch);

    if (curl_errno($ch)) {
        echo 'Error: ' . curl_error($ch);
        exit;
    }

    curl_close($ch);

    echo 'Response dari /api/users: ' . $response;

} else {
    echo 'Gagal mendapatkan access token: ' . json_encode($responseData);
}

?>

Catatan Penting: Ganti placeholder YOUR_CLIENT_ID, YOUR_CLIENT_SECRET, [email protected], dan password dengan nilai yang sesuai. Jangan menyimpan kredensial secara langsung dalam kode; gunakan variabel lingkungan atau cara yang lebih aman.

10. Troubleshooting Umum: Mengatasi Masalah yang Sering Terjadi

Berikut adalah beberapa masalah umum yang mungkin Anda temui saat membuat API dengan Laravel dan Passport, beserta solusinya:

  • Error “Unauthenticated”: Ini biasanya terjadi karena Anda belum mengirimkan access token yang valid dalam header Authorization. Pastikan Anda mengirimkan header Authorization: Bearer <access_token>. Periksa juga apakah middleware auth:api sudah diterapkan pada route yang sesuai.
  • Error “Client authentication failed”: Ini biasanya terjadi karena client ID atau client secret yang Anda gunakan salah. Periksa kembali client ID dan secret Anda. Pastikan client sudah diaktifkan dan tidak di revoked.
  • Error “invalid_grant”: Ini biasanya terjadi karena kombinasi username dan password salah atau refresh token sudah kedaluwarsa. Periksa kembali kredensial pengguna atau perbarui refresh token jika diperlukan. Pastikan juga grant type yang digunakan sesuai (misalnya, password atau refresh_token).
  • Database Migration Issues: Pastikan database Anda sudah di-migrate dengan benar setelah menginstal Passport. Gunakan php artisan migrate untuk memastikan semua tabel Passport telah dibuat.
  • CORS Issues: Jika Anda mengalami masalah CORS, pastikan Anda sudah mengkonfigurasi CORS dengan benar di server Anda. Anda dapat menggunakan paket fruitcake/laravel-cors untuk mempermudah konfigurasi CORS di Laravel.

11. Kesimpulan: Membangun API Aman dan Handal dengan Laravel dan Passport

Dengan mengikuti panduan ini, Anda sekarang memiliki pemahaman yang baik tentang cara membuat API dengan Laravel dan Passport: Keamanan Terjamin. Ingatlah bahwa keamanan adalah proses berkelanjutan. Selalu perbarui Laravel, Passport, dan dependensi lainnya ke versi terbaru untuk mendapatkan perbaikan keamanan terbaru. Teruslah belajar dan eksplorasi fitur-fitur Laravel dan Passport untuk membangun API yang lebih canggih dan aman. Selamat mencoba!

12. Referensi Tambahan dan Sumber Daya

Berikut adalah beberapa sumber daya yang dapat membantu Anda mempelajari lebih lanjut tentang Laravel dan Passport:

  • Dokumentasi Resmi Laravel: https://laravel.com/docs
  • Dokumentasi Resmi Laravel Passport: https://laravel.com/docs/passport
  • Laravel News: https://laravel-news.com/
  • Laracasts: https://laracasts.com/

Dengan referensi ini, Anda dapat terus meningkatkan kemampuan Anda dalam mengembangkan API yang handal dan aman menggunakan Laravel dan Passport.

Tags: APIAuthenticationBackendDevelopmentLaravelOAuthPassportPHPSecuritytutorial
Elara

Elara

Related Posts

API

Membuat API Authentication dengan Laravel Sanctum: Panduan Lengkap

by Jasper
June 26, 2025
Hacker

Cara Meningkatkan Keamanan Website Laravel dari Serangan Hacker

by Willow
June 26, 2025
Development

Top 5 Package Laravel yang Mempermudah Pengembangan Website Anda

by Seraphina
June 26, 2025
Next Post

Contoh Project Laravel Sederhana dengan CRUD: Praktik Langsung!

Leave a Reply Cancel reply

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

Recommended

Tutorial Laravel Dasar untuk Pemula Bahasa Indonesia: Mulai Membangun Aplikasi Web

June 9, 2025

Desain Website Modern dan Menarik: Tingkatkan Konversi dengan Visual yang Memukau

April 9, 2025

Lowongan Kerja Web Development Fresh Graduate: Tips Mendapatkan Pekerjaan Impian

June 9, 2025

Generator AI untuk Membuat Logo Website dengan Mudah

June 27, 2025

Tools AI Gratis untuk Meningkatkan Produktivitas Konten Marketing Anda

June 27, 2025

Cara Membuat Artikel SEO-Friendly dengan Bantuan AI

June 26, 2025

Aplikasi AI Terbaik untuk Mengedit Foto Produk Online: Tingkatkan Penjualanmu Sekarang!

June 26, 2025

m.techreview.click

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

  • Generator AI untuk Membuat Logo Website dengan Mudah
  • Tools AI Gratis untuk Meningkatkan Produktivitas Konten Marketing Anda
  • Cara Membuat Artikel SEO-Friendly dengan Bantuan AI

Categories

  • 2024
  • Agency
  • AI
  • Akses
  • Aktif
  • Akuntansi
  • Algoritma
  • Analisis
  • Anggaran
  • Antarmuka
  • Antisipasi
  • API
  • Aplikasi
  • Artikel
  • Asynchronous
  • Audio
  • Authentication
  • Authorization
  • Backend
  • Background
  • Backup
  • Bahasa
  • Bandwidth
  • Bantuan
  • Belajar
  • Bergabung
  • Biaya
  • Bisnis
  • Blogger
  • Bootstrap
  • Branding
  • Bukti
  • Cepat
  • Chatbot
  • Cloud
  • Coding
  • Company
  • Contoh
  • cPanel
  • CRM
  • CSS
  • Custom
  • Dampak
  • Dasar
  • Data
  • Database
  • Deployment
  • Desain
  • Design
  • Detail
  • Developer
  • Development
  • Digital
  • Diskusi
  • Dokumentasi
  • Domain
  • Download
  • Dukungan
  • E-commerce
  • Efektif
  • Efisiensi
  • Eloquent
  • Email
  • Engine
  • Enterprise
  • Error
  • Error generating categories
  • Estimasi
  • Etika
  • Event
  • Faktor
  • Fitur
  • Fleksibel
  • Fortify
  • Foto
  • Framework
  • Freelancer
  • Fresh
  • Frontend
  • Fungsi
  • Gambar
  • Garansi
  • Gratis
  • Hacker
  • Harga
  • Hemat
  • Here are 5 categories derived from the article title "Hosting dengan Dukungan Pelanggan 24 Jam: Bantuan Kapanpun Dibutuhkan": Hosting
  • Here are 5 categories derived from the article title "Hosting Domain Murah Indonesia dengan Proteksi DDoS Gratis: Solusi Terbaik untuk Website Anda": Hosting
  • Here are 5 categories derived from the provided list and the article titles: Company
  • Hosting
  • HTML
  • Hybrid
  • Implementasi
  • Indonesia
  • Inovasi
  • Inspirasi
  • Instalasi
  • Integrasi
  • Investasi
  • Jakarta
  • Jasa
  • JavaScript
  • Kantor
  • Kapasitas
  • Karir
  • Karyawan
  • Keamanan
  • Keandalan
  • Kebutuhan
  • Kecepatan
  • Kecil
  • Kehidupan
  • Kemampuan
  • Kemudahan
  • Kerja
  • Kesalahan
  • Kesehatan
  • Keterampilan
  • Keuntungan
  • Keyword
  • Kode
  • Kompetensi
  • Komponen
  • Komunikasi
  • Komunitas
  • Konsep
  • Konten
  • Konversi
  • Kreativitas
  • Kredibilitas
  • Kualitas
  • Langkah
  • Laravel
  • Latihan
  • Layanan
  • Library
  • Listener
  • Livewire
  • Logika
  • Logo
  • Lokal
  • Loyalitas
  • Machine Learning
  • Mahasiswa
  • Mahir
  • Maintenance
  • Manfaat
  • Manufaktur
  • Marketing
  • Masa Depan
  • Masyarakat
  • Medis
  • Memilih
  • Meningkatkan
  • Middleware
  • Migration
  • Mobile
  • Modern
  • Murah
  • MySQL
  • Observer
  • Online
  • Operasional
  • Optimasi
  • ORM
  • Otentikasi
  • Otomatis
  • Package
  • Panduan
  • Pasar
  • Pekerjaan
  • Pelajaran
  • Pelanggan
  • Pelatihan
  • Peluang
  • Pemahaman
  • Pemanfaatan
  • Pemasaran
  • Pemilihan
  • Pemrograman
  • Pemula
  • Penawaran
  • Pengalaman
  • Pengenalan
  • Pengguna
  • Penggunaan
  • Pengujian
  • Penipuan
  • Penjualan
  • Penulisan
  • Peran
  • Perbandingan
  • Perbedaan
  • Performa
  • Performance
  • Peringkat
  • Pertimbangan
  • Pertumbuhan
  • Perusahaan
  • PHP
  • Pilihan
  • Platform
  • Policy
  • Portofolio
  • Praktik
  • Prediksi
  • Pribadi
  • Process
  • Produktivitas
  • Profesional
  • Profil
  • Profile
  • Project
  • Proyek
  • Python
  • Queue
  • Real-Time
  • Redis
  • Referensi
  • Rekomendasi
  • Relasi
  • Remote
  • Request
  • Responsive
  • Retail
  • Retensi
  • Review
  • Riset
  • Ritel
  • Roadmap
  • Saham
  • Sanctum
  • Sederhana
  • Seeding
  • SEO
  • Sertifikat
  • Server
  • Sharing
  • Sinkronisasi
  • Sistem
  • Skalabilitas
  • Skill
  • Software
  • Solusi
  • Space
  • SSL
  • Startup
  • Strategi
  • Struktur
  • Studi Kasus
  • Sukses
  • Tanggung Jawab
  • Tantangan
  • Teknis
  • Teknologi
  • Teks
  • Template
  • Tenaga Kerja
  • Terbaik
  • Terjangkau
  • Terjemahan
  • Terlengkap
  • Terpercaya
  • Tim
  • Tips
  • Toko
  • Tools
  • Training
  • Transkripsi
  • Tren
  • Tugas
  • Tutorial
  • Uji Coba
  • UMKM
  • Umum
  • Unlimited
  • Uptime
  • URL
  • User Experience
  • Video
  • Visual
  • VPS
  • Wajah
  • Web
  • Web Development
  • Website
  • Windows
  • WordPress

Resource

  • About us
  • Contact Us
  • Privacy Policy

© 2024 m.techreview.click.

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

© 2024 m.techreview.click.