Gần đây tôi đã tìm hiểu về SIWE và thành thật mà nói, nó là một bước đột phá cho bất kỳ ai xây dựng Dapps cần xác thực người dùng đúng cách. Để tôi phân tích những gì tôi đã học.



Vì vậy, đây là vấn đề về kết nối ví - đúng vậy, bạn có thể kết nối ví của mình với một Dapp, nhưng điều đó không hoàn toàn chứng minh quyền sở hữu với backend. Địa chỉ của bạn là thông tin công khai, đúng không? Bất kỳ ai cũng có thể giả danh bạn trong các cuộc gọi API. Đó là nơi Sign-In with Ethereum (Đăng nhập bằng Ethereum) xuất hiện. Nó về cơ bản sử dụng ví của bạn để chứng minh mã hóa rằng bạn kiểm soát địa chỉ đó, tương tự như cách bạn ký một giao dịch.

Khi nào SIWE thực sự đáng để triển khai? Nếu Dapp của bạn có tài khoản người dùng hoặc xử lý dữ liệu nhạy cảm, chắc chắn rồi. Các ứng dụng chỉ truy vấn như Etherscan? Có lẽ không cần thiết. Nhưng nếu bạn đang xây dựng một thứ gì đó với hệ thống người dùng thực sự, SIWE là lựa chọn phù hợp.

Quy trình này khá đơn giản - gồm ba bước chính. Đầu tiên, kết nối ví tiêu chuẩn qua các plugin. Sau đó, bạn yêu cầu một Nonce từ backend của mình (điều này ngăn chặn các cuộc tấn công phát lại), xây dựng một tin nhắn với Nonce đó cộng thêm một số dữ liệu khác như tên miền và ID chuỗi, rồi ký nó qua ví của bạn. Cuối cùng, backend xác minh chữ ký đó và trả về cho bạn một token JWT để sử dụng cho các yêu cầu tiếp theo.

Tôi đã thử nghiệm với việc triển khai thực tế sử dụng Next.js và Ant Design Web3. Cài đặt khá gọn gàng hơn tôi mong đợi. Bạn cài đặt các phụ thuộc, kết nối nhà cung cấp Wagmi với cấu hình SIWE của mình, và voilà - bạn đã có kết nối ví và ký xác thực tích hợp sẵn. Các phần quan trọng là endpoint Nonce (tạo và lưu trữ một giá trị ngẫu nhiên liên kết với địa chỉ của người dùng) và endpoint xác minh (kiểm tra chữ ký, xác nhận Nonce khớp, rồi phát hành JWT).

Một điều khiến tôi ngạc nhiên - cấu hình RPC mặc định rất chậm, mất khoảng 30 giây để xác minh chữ ký. Tôi đã chuyển sang dịch vụ node riêng và giảm thời gian đó đáng kể. Đây là một tối ưu quan trọng nếu bạn muốn đưa sản phẩm ra thị trường.

Rõ ràng, mã demo trên mạng chỉ để học tập. Sử dụng thực tế trong sản phẩm cần xử lý JWT đúng cách, giới hạn tốc độ và các biện pháp bảo mật khác. Nhưng luồng SIWE cốt lõi rất vững chắc và đang trở thành tiêu chuẩn trong hệ sinh thái. Nếu bạn nghiêm túc xây dựng Dapps với xác thực đúng đắn, đây chắc chắn là điều đáng để hiểu.
ETH-0,32%
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • Bình luận
  • Đăng lại
  • Retweed
Bình luận
Thêm một bình luận
Thêm một bình luận
Không có bình luận
  • Ghim