Skip to content

he-end/verify-reverse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reverse Verify

Microservice Autentikasi dengan Metode Verifikasi Terbalik via WhatsApp & Email


Ringkasan

Reverse Verify adalah layanan autentikasi yang membalik alur verifikasi tradisional: alih-alih server mengirim kode ke user, server menunggu user mengirim kode kembali — membuktikan kepemilikan kontak tanpa server perlu mengirim apa pun.

Detail Konsep →


Arsitektur

main.go → Container (DI) → Handler → Service → Repository → PostgreSQL

Dibangun dengan Go 1.25, Gin, Bun ORM, PostgreSQL 18, JWT HS512, dan bcrypt.

Detail Arsitektur & Teknologi → · Struktur Proyek →


API Endpoints

Base path: /api/v1.0

Method Path Deskripsi Auth
GET /csrf-token Ambil CSRF token Tidak
POST /wa-register Registrasi via WhatsApp Tidak
POST /email-register Registrasi via email Tidak
POST /login Login Tidak
POST /refresh Refresh access token Cookie
POST /logout Hapus semua session JWT Bearer
POST /whatsapp/ Webhook WhatsApp Tidak

Detail API → · Alur Registrasi WhatsApp →


Keamanan

  • Phantom verification codes — anti-enumeration dengan kode hantu yang tidak bisa dibedakan
  • Constant-time response — delay acak 4–8 detik pada endpoint registrasi
  • Rate limiting — 5 req/menit per IP (registrasi), 3 pesan/30 detik per sender (webhook)
  • Escalating block — 5x gagal → 30m, 10x → 2j, 15x → 24j
  • Multi-session — kontrol jumlah session per user via ALLOW_MULTI_SESSION & MAX_SESSION
  • CSRF Protection — Double Submit Cookie pattern, aktif di production, no-op di development
  • Webhook Signature Verification — validasi HMAC SHA-256 pada X-Hub-Signature-256 header untuk webhook WhatsApp

Detail Keamanan →


Database

Tabel Deskripsi
users Akun user
sessions Session JWT
verification_codes Kode verifikasi (+ phantom)
verification_attempts Tracking percobaan gagal

Detail Skema →


Memulai Development

docker compose up -d                    # PostgreSQL
cp .env.example .env                    # Konfigurasi
go run ./cmd/migrate/                   # Migrasi
go run .                                # Server (port 8080)

Detail Setup & Testing → · Environment Variables →

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages