web3auth-rust Svelte Themes

Web3auth Rust

๐Ÿš€ Web3 Auth Microservice (Rust + Svelte) Microservice autentikasi & otorisasi Web3 dengan Rust (Axum), JWT, integrasi wallet Ethereum (Metamask), dan frontend interaktif Svelte

๐Ÿ” Web3Auth-Rust: Autentikasi Web3 dengan Rust & Svelte


Sistem autentikasi dan otorisasi Web3 modern menggunakan Rust dan Svelte
Login dengan Metamask. Verifikasi tanda tangan kriptografi. Aman dan full-stack.

๐Ÿš€ Demo โ€ข ๐Ÿ“‹ Fitur โ€ข ๐Ÿ› ๏ธ Teknologi โ€ข ๐Ÿ Mulai โ€ข ๐Ÿ‘ฅ Kontribusi

๐ŸŒŸ Ringkasan

Web3Auth-Rust adalah implementasi lengkap microservice autentikasi Web3 yang memungkinkan pengguna melakukan autentikasi menggunakan dompet Web3 (Ethereum) tanpa perlu menyimpan kata sandi.

๐Ÿ”ฅ Dapatkan otentikasi modern untuk aplikasi Anda dengan teknologi blockchain

โœจ Fitur Utama

  • ๐Ÿ”’ Aman: Autentikasi berbasis tanda tangan kriptografi Ethereum
  • ๐Ÿ›ก๏ธ Nonce Challenge: Mencegah serangan replay dan menjamin keamanan
  • ๐ŸŽซ JWT: Token berbasis stateless untuk otorisasi
  • โšก Performa Tinggi: Backend Rust yang cepat dan efisien
  • ๐Ÿ–ฅ๏ธ UI Modern: Frontend Svelte dengan UX yang intuitif
  • ๐Ÿ“ฑ Responsif: Desain yang bekerja pada semua ukuran layar

๐Ÿ› ๏ธ Teknologi

Backend

  • Rust: Bahasa pemrograman yang cepat dan andal
  • Axum: Framework web Rust modern dan efisien
  • ethers-rs: Implementasi Ethereum di Rust
  • tokio: Runtime asinkron untuk Rust
  • jsonwebtoken: Implementasi JWT untuk Rust

Frontend

  • Svelte: Framework UI reaktif yang cepat
  • SvelteKit: Framework meta untuk membangun aplikasi Svelte
  • TypeScript: JavaScript dengan tipe statis untuk keamanan kode
  • ethers.js: Library lengkap untuk interaksi dengan Ethereum

๐Ÿ—๏ธ Struktur Proyek

.
โ”œโ”€โ”€ backend/            # ๐Ÿฆ€ Server Rust dengan Axum
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ config/     # โš™๏ธ Konfigurasi aplikasi
โ”‚   โ”‚   โ”œโ”€โ”€ middleware/ # ๐Ÿ”— Middleware JWT
โ”‚   โ”‚   โ”œโ”€โ”€ models/     # ๐Ÿ“Š Model data
โ”‚   โ”‚   โ”œโ”€โ”€ routes/     # ๐ŸŒ API routes
โ”‚   โ”‚   โ”œโ”€โ”€ services/   # ๐Ÿงฉ Business logic
โ”‚   โ”‚   โ”œโ”€โ”€ utils/      # ๐Ÿ”ง Utility functions
โ”‚   โ”‚   โ””โ”€โ”€ main.rs     # ๐Ÿšช Entry point
โ”‚   โ””โ”€โ”€ Cargo.toml      # ๐Ÿ“ฆ Rust dependencies
โ”‚
โ”œโ”€โ”€ frontend/           # ๐ŸŽจ UI Svelte
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ lib/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ components/ # ๐Ÿงฑ UI Components
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ services/   # ๐Ÿ”Œ API dan Web3 services
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ stores/     # ๐Ÿ—„๏ธ State management
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ types/      # ๐Ÿ“ TypeScript types
โ”‚   โ”‚   โ”œโ”€โ”€ routes/         # ๐Ÿ“‘ Halaman aplikasi
โ”‚   โ”‚   โ””โ”€โ”€ app.css         # ๐ŸŽจ Global styles
โ”‚   โ””โ”€โ”€ package.json        # ๐Ÿ“ฆ NPM dependencies
โ”‚
โ””โ”€โ”€ README.md           # ๐Ÿ“ƒ Anda berada di sini

๐Ÿš€ Cara Memulai

Prasyarat

๐Ÿƒโ€โ™‚๏ธ Menjalankan Backend

  1. Clone repository:

    git clone https://github.com/badruzbby/web3auth-rust.git
    cd web3auth-rust
    
  2. Masuk ke direktori backend:

    cd backend
    
  3. Buat file .env (atau gunakan yang sudah ada):

    PORT=8080
    RUST_LOG=info
    JWT_SECRET=rahasia_jwt_web3auth_microservice_sangat_aman_dan_panjang
    
  4. Jalankan server:

    cargo run
    

Backend akan berjalan di http://localhost:8080 ๐ŸŽ‰

๐Ÿ–Œ๏ธ Menjalankan Frontend

  1. Masuk ke direktori frontend:

    cd frontend
    
  2. Install dependencies:

    npm install
    
  3. Jalankan server development:

    npm run dev
    

Frontend akan berjalan di http://localhost:5173 ๐ŸŽ‰

๐Ÿ“ก API Endpoints

Method Endpoint Deskripsi Auth
POST /api/auth/nonce Mendapatkan nonce unik ๐Ÿšซ
POST /api/auth/verify Verifikasi tanda tangan ๐Ÿšซ
GET /api/profile Mendapatkan profil pengguna โœ…

๐Ÿ”’ Alur Autentikasi

  1. ๐Ÿ“ Request Nonce: Frontend meminta nonce dari backend
  2. ๐Ÿ‘› Tanda Tangan: User menandatangani pesan (termasuk nonce) dengan Metamask
  3. โœ… Verifikasi: Backend memverifikasi tanda tangan dan identitas pengguna
  4. ๐ŸŽซ Token JWT: Backend menghasilkan dan mengirim token JWT ke frontend
  5. ๐Ÿ” Otorisasi: Frontend menggunakan JWT untuk API requests yang memerlukan auth

๐Ÿ”ง Deployment

๐Ÿณ Menggunakan Docker

Cara tercepat untuk deploy:

docker-compose up -d

Docker Compose file included in the repo!

โ˜๏ธ Cloud Deployment

Proyek ini kompatibel dengan:

  • AWS: ECS dengan Fargate atau EC2
  • GCP: Cloud Run atau Kubernetes Engine
  • Azure: Container Instances atau Kubernetes Service
  • Heroku: Buildpacks tersedia untuk Rust dan Node.js

๐Ÿค Kontribusi

Kontribusi sangat disambut! Berikut adalah beberapa cara untuk berkontribusi:

  • ๐Ÿ› Laporkan bug atau masalah
  • ๐Ÿ’ก Usulkan fitur atau peningkatan baru
  • ๐Ÿ“ Perbaiki atau perbarui dokumentasi
  • ๐Ÿงฉ Kirimkan pull request

Langkah-langkah untuk kontribusi:

  1. Fork repository ini
  2. Buat branch fitur baru (git checkout -b feature/amazing-feature)
  3. Commit perubahan Anda (git commit -m 'Menambahkan fitur yang luar biasa')
  4. Push ke branch (git push origin feature/amazing-feature)
  5. Buka Pull Request

๐Ÿ“„ Lisensi

Proyek ini dilisensikan di bawah MIT License. Lihat file LICENSE untuk lebih detail.


Dibuat dengan โค๏ธ oleh Muhammad Badruz Zaman, untuk Developer

๐Ÿงช Fitur Teknis untuk Developer

  • Zero Dependencies: Backend hanya menggunakan library yang sangat diperlukan
  • Memory Safe: Keamanan memori bawaan dari Rust mencegah bug keamanan umum
  • Async I/O: Performa tinggi dengan model konkurensi asinkron di backend
  • Strongly Typed: TypeScript di frontend mencegah banyak bug dalam pengembangan
  • Compositional UI: Komponen Svelte yang dapat digunakan kembali dan termodulasi
  • Web3 Ready: Siap diintegrasikan dengan kontrak pintar dan dApp

Top categories

svelte logo

Need a Svelte website built?

Hire a professional Svelte developer today.
Loading Svelte Themes