1 poin oleh imjlk 2026-03-11 | Belum ada komentar. | Bagikan ke WhatsApp

Saat mencoba memasang Better Auth di Cloudflare Pages, saya terus mengalami error CPU time limit. Karena itu, saya membuatnya bersama Codex.

Cloudflare memungkinkan Worker berkomunikasi langsung antar-Worker tanpa URL publik melalui Service Binding dan RPC WorkerEntrypoint, jadi saya menilai pendekatan ini lebih alami untuk fungsi yang sifatnya seperti infrastruktur internal. Karena itu, saya merancang template Worker private password hasher yang bisa digunakan dalam logika autentikasi seperti Better Auth.

Strukturnya sederhana. Worker caller yang menangani auth menghubungkan hasher Worker melalui private service binding, lalu hashing dan verifikasi yang sebenarnya hanya dipanggil lewat metode RPC seperti hashPassword() / verifyPassword(). HTTP publik disisakan seminimal mungkin, seperti GET / untuk metadata/health, dan asumsi dasarnya adalah tidak mengekspos password hashing itu sendiri sebagai endpoint eksternal. Dengan kata lain, ini lebih dekat ke pendekatan “memisahkan password hashing sebagai komponen Worker internal Cloudflare” daripada “membuka hash API ke publik”.

Implementasinya menempatkan kernel Rust/Wasm di atas shell Worker TypeScript (diputuskan setelah benchmark sederhana untuk membandingkan dengan implementasi full Rust), dan algoritma hashing yang digunakan adalah Argon2id. Fokus template ini bukan memperkenalkan Argon2id itu sendiri, melainkan bagaimana memisahkan dan mengoperasikan password hashing di dalam Cloudflare Workers dengan batas yang jelas. Worker aplikasi dapat fokus pada alur autentikasi dan manajemen sesi, sementara hashing/verifikasi ditangani oleh hasher Worker terpisah.

Alur penggunaan bersama Better Auth juga ikut dipertimbangkan. Better Auth pada dasarnya memakai scrypt, tetapi karena password hash/verify bisa dikustomisasi, ia dapat dihubungkan dengan memanggil hasher Worker dari caller Worker. Selain itu, meskipun akun lama masih menggunakan format legacy scrypt, alurnya diasumsikan bisa memverifikasi saat login lalu secara bertahap menaikkan ke hash Argon2id baru lewat verifyAndMaybeRehash(). Jadi, alih-alih memaksa semua pengguna lama mengganti password sekaligus, template ini dirancang dengan jalur migrasi yang mengikuti traffic login nyata untuk berpindah sedikit demi sedikit ke preset yang lebih kuat.

Dari sudut pandang operasional, saya juga mempertimbangkan bahwa Cloudflare Free dan Paid sulit diperlakukan dengan standar yang sama. Di Free, batas CPU kecil sehingga konfigurasi default Argon2id bisa terasa berat, jadi saya membayangkan susunan preset seperti free-tier-fallback-2026q1 terpisah dari standard-2026q1. Namun preset fallback ini murni kompromi operasional karena keterbatasan platform, bukan nilai yang ingin diperkenalkan sebagai baseline keamanan. Bahkan jika memulai dari Free, dokumentasi dan contohnya tetap memuat alur migrasi bertahap agar nantinya saat naik ke Paid, rehash ke preset Argon2id yang lebih kuat bisa dilakukan.

Singkatnya, repositori ini lebih dekat ke pertanyaan “bagaimana mengoperasikan password hashing dengan pemisahan batas yang tepat di Cloudflare Workers” daripada “bagaimana menghitung hash password di Cloudflare Workers”. Jika Anda menjalankan Better Auth di Workers dan ingin memisahkan beban pada bagian hashing, tidak ingin membuka public hash endpoint, atau ingin memigrasikan akun legacy scrypt ke Argon2id secara bertahap, semoga ini bisa menjadi titik awal yang baik.

repo: https://github.com/imjlk/cloudflare-auth-hasher-template
benchmark: https://github.com/imjlk/cloudflare-auth-hasher-template/tree/codex/benchmark-workspace
deploy: [Tautan Deploy to Cloudflare] (Anda bisa langsung mencoba deployment setelah login ke akun Cloudflare.)

Belum ada komentar.

Belum ada komentar.