Belakangan ini saya sedang mendalami SIWE dan jujur saja, ini benar-benar mengubah permainan bagi siapa saja yang membangun Dapp yang membutuhkan otentikasi pengguna yang tepat. Izinkan saya menjelaskan apa yang telah saya pelajari.



Jadi begini tentang koneksi dompet - ya, Anda bisa menghubungkan dompet Anda ke Dapp, tetapi itu tidak sepenuhnya membuktikan kepemilikan ke backend. Alamat Anda adalah info publik, kan? Siapa saja secara teori bisa mengklaim sebagai Anda dalam panggilan API. Di sinilah Sign-In with Ethereum berperan. Ini pada dasarnya menggunakan dompet Anda untuk membuktikan secara kriptografi bahwa Anda mengendalikan alamat tersebut, mirip seperti saat Anda menandatangani sebuah transaksi.

Kapan SIWE benar-benar layak diterapkan? Jika Dapp Anda memiliki akun pengguna atau menangani data sensitif, pasti. Aplikasi yang hanya melakukan query seperti Etherscan? Mungkin tidak perlu. Tapi jika Anda membangun sesuatu dengan sistem pengguna yang nyata, SIWE adalah pilihan yang tepat.

Prosesnya sendiri cukup sederhana - tiga langkah utama. Pertama, koneksi dompet standar melalui plugin. Kemudian Anda meminta Nonce dari backend Anda (ini mencegah serangan replay), membangun pesan dengan Nonce tersebut ditambah data lain seperti domain dan chain ID, dan menandatanganinya melalui dompet Anda. Terakhir, backend memverifikasi tanda tangan tersebut dan memberikan token JWT untuk permintaan berikutnya.

Saya telah bereksperimen dengan implementasi nyata menggunakan Next.js dan Ant Design Web3. Pengaturannya lebih bersih dari yang saya kira. Anda menginstal dependensi, menghubungkan penyedia Wagmi dengan konfigurasi SIWE Anda, dan boom - koneksi dompet dan penandatanganan sudah terintegrasi. Bagian utama adalah endpoint Nonce (menghasilkan dan menyimpan nilai acak yang terkait dengan alamat pengguna) dan endpoint verifikasi (memeriksa tanda tangan, memvalidasi bahwa Nonce cocok, lalu mengeluarkan JWT).

Satu hal yang mengejutkan saya - pengaturan RPC default sangat lambat, memakan waktu sekitar 30 detik untuk memverifikasi tanda tangan. Saya beralih ke layanan node khusus dan mengurangi waktu itu secara drastis. Itu adalah optimasi penting jika Anda ingin masuk ke produksi.

Jelas kode demo yang ada hanya untuk tujuan belajar. Penggunaan produksi nyata membutuhkan penanganan JWT yang tepat, pembatasan laju, dan langkah keamanan lainnya. Tapi alur SIWE inti sudah solid dan semakin menjadi standar di seluruh ekosistem. Jika Anda serius membangun Dapp dengan otentikasi yang tepat, ini pasti layak dipahami.
ETH0,4%
Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
  • Hadiah
  • Komentar
  • Posting ulang
  • Bagikan
Komentar
Tambahkan komentar
Tambahkan komentar
Tidak ada komentar
  • Sematkan