Hướng dẫn sử dụng SIWE: Làm cho Dapp của bạn mạnh mẽ hơn
SIWE(Đăng Nhập bằng Ethereum) là một cách xác thực danh tính người dùng trên Ethereum, tương tự như việc ví khởi xướng giao dịch, chứng minh quyền kiểm soát của người dùng đối với ví. Hiện tại, việc xác thực danh tính đã trở nên rất đơn giản, chỉ cần ký thông tin trong plugin ví là đủ, hầu hết các plugin ví phổ biến đều đã hỗ trợ. Bài viết này chủ yếu thảo luận về các tình huống ký trên Ethereum.
Có cần SIWE không
Nếu Dapp của bạn có những yêu cầu sau, bạn có thể xem xét sử dụng SIWE:
Có hệ thống người dùng riêng
Cần tra cứu thông tin liên quan đến quyền riêng tư của người dùng
Nhưng nếu Dapp của bạn chủ yếu là chức năng tra cứu, như ứng dụng tương tự etherscan, thì không nhất thiết phải cần SIWE.
Bạn có thể thắc mắc, sau khi kết nối ví trên Dapp, không phải là đã chứng minh quyền sở hữu ví rồi sao? Điều này chỉ có hiệu lực ở phía trước. Đối với các cuộc gọi giao diện cần hỗ trợ từ phía sau, chỉ việc truyền địa chỉ là không đủ, vì địa chỉ là thông tin công khai, bất kỳ ai cũng có thể "mượn" danh tính của bạn.
Nguyên tắc và quy trình SIWE
Quy trình SIWE có thể tóm tắt thành ba bước: Kết nối ví - Ký tên - Nhận danh tính.
Kết nối ví
Đây là thao tác Web3 phổ biến, kết nối ví trong Dapp thông qua plugin ví.
chữ ký
Các bước ký bao gồm lấy giá trị Nonce, ký ví và xác minh chữ ký từ phía backend.
Phía sau tạo ra giá trị Nonce ngẫu nhiên và liên kết với địa chỉ. Phía trước nhận giá trị Nonce sau đó xây dựng nội dung chữ ký, bao gồm giá trị Nonce, tên miền, ID chuỗi, v.v., sử dụng phương pháp do ví cung cấp để ký. Cuối cùng gửi chữ ký đến phía sau.
Lấy danh tính
Sau khi xác minh chữ ký ở phía backend thành công, trả về danh tính người dùng ( như JWT). Các yêu cầu tiếp theo từ phía frontend mang theo địa chỉ và danh tính, có thể chứng minh quyền sở hữu ví.
Thực hành SIWE
Chúng tôi sẽ sử dụng Next.js để phát triển một demo SIWE đơn giản, trình bày quy trình cơ bản. Lưu ý, demo này chỉ được sử dụng để giới thiệu, việc sử dụng trong môi trường sản xuất có thể tồn tại vấn đề về bảo mật.
Tối ưu hóa: Sử dụng dịch vụ nút chuyên dụng để nâng cao tốc độ phản hồi
Thông qua các bước trên, chúng ta đã thực hiện một khung đăng nhập SIWE cơ bản. Việc sử dụng dịch vụ nút chuyên nghiệp có thể nâng cao đáng kể tốc độ xác thực, khuyên nên áp dụng trong môi trường sản xuất.
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.
SIWE thực chiến: Ba bước xây dựng hệ thống xác thực danh tính Ethereum
Hướng dẫn sử dụng SIWE: Làm cho Dapp của bạn mạnh mẽ hơn
SIWE(Đăng Nhập bằng Ethereum) là một cách xác thực danh tính người dùng trên Ethereum, tương tự như việc ví khởi xướng giao dịch, chứng minh quyền kiểm soát của người dùng đối với ví. Hiện tại, việc xác thực danh tính đã trở nên rất đơn giản, chỉ cần ký thông tin trong plugin ví là đủ, hầu hết các plugin ví phổ biến đều đã hỗ trợ. Bài viết này chủ yếu thảo luận về các tình huống ký trên Ethereum.
Có cần SIWE không
Nếu Dapp của bạn có những yêu cầu sau, bạn có thể xem xét sử dụng SIWE:
Nhưng nếu Dapp của bạn chủ yếu là chức năng tra cứu, như ứng dụng tương tự etherscan, thì không nhất thiết phải cần SIWE.
Bạn có thể thắc mắc, sau khi kết nối ví trên Dapp, không phải là đã chứng minh quyền sở hữu ví rồi sao? Điều này chỉ có hiệu lực ở phía trước. Đối với các cuộc gọi giao diện cần hỗ trợ từ phía sau, chỉ việc truyền địa chỉ là không đủ, vì địa chỉ là thông tin công khai, bất kỳ ai cũng có thể "mượn" danh tính của bạn.
Nguyên tắc và quy trình SIWE
Quy trình SIWE có thể tóm tắt thành ba bước: Kết nối ví - Ký tên - Nhận danh tính.
Kết nối ví
Đây là thao tác Web3 phổ biến, kết nối ví trong Dapp thông qua plugin ví.
chữ ký
Các bước ký bao gồm lấy giá trị Nonce, ký ví và xác minh chữ ký từ phía backend.
Phía sau tạo ra giá trị Nonce ngẫu nhiên và liên kết với địa chỉ. Phía trước nhận giá trị Nonce sau đó xây dựng nội dung chữ ký, bao gồm giá trị Nonce, tên miền, ID chuỗi, v.v., sử dụng phương pháp do ví cung cấp để ký. Cuối cùng gửi chữ ký đến phía sau.
Lấy danh tính
Sau khi xác minh chữ ký ở phía backend thành công, trả về danh tính người dùng ( như JWT). Các yêu cầu tiếp theo từ phía frontend mang theo địa chỉ và danh tính, có thể chứng minh quyền sở hữu ví.
Thực hành SIWE
Chúng tôi sẽ sử dụng Next.js để phát triển một demo SIWE đơn giản, trình bày quy trình cơ bản. Lưu ý, demo này chỉ được sử dụng để giới thiệu, việc sử dụng trong môi trường sản xuất có thể tồn tại vấn đề về bảo mật.
công việc chuẩn bị
npx create-next-app@14
npm install antd @ant-design/web3 @ant-design/web3-wagmi wagmi viem @tanstack/react-query --save
Thực hiện nút kết nối ví
Thực hiện giao diện backend
Tối ưu hóa: Sử dụng dịch vụ nút chuyên dụng để nâng cao tốc độ phản hồi
Thông qua các bước trên, chúng ta đã thực hiện một khung đăng nhập SIWE cơ bản. Việc sử dụng dịch vụ nút chuyên nghiệp có thể nâng cao đáng kể tốc độ xác thực, khuyên nên áp dụng trong môi trường sản xuất.