SIWE:以太坊身分驗證新標準 提升Dapp安全性與用戶體驗

robot
摘要生成中

SIWE:提升 Dapp 身分驗證能力的利器

SIWE(Sign-In with Ethereum)是一種在以太坊上驗證用戶身分的方法,類似於發起交易,證明用戶對錢包的控制權。目前,身分驗證過程已經非常簡化,只需在錢包插件中對信息進行籤名即可,大多數常見錢包插件都已支持這一功能。

本文主要探討以太坊上的籤名場景,不涉及其他區塊鏈如Solana、SUI等。

SIWE使用手冊:如何讓你的Dapp更加強大?

何時需要SIWE

如果你的Dapp具有以下特徵,可以考慮使用SIWE:

  • 擁有獨立的用戶系統
  • 需要查詢與用戶隱私相關的信息

對於主要功能是查詢的應用,如區塊瀏覽器,可以不使用SIWE。

雖然在Dapp上連接錢包後似乎已經證明了身分,但這只對前端有效。對於需要後端支持的接口調用,僅傳遞地址是不夠的,因爲地址是公開信息,容易被冒用。

SIWE使用手冊:如何讓你的Dapp更加強大?

SIWE的工作原理

SIWE的流程可概括爲三個步驟:連接錢包、籤名、獲取身分標識。

  1. 連接錢包:通過錢包插件在Dapp中連接用戶錢包。

  2. 籤名:

    • 獲取Nonce值:調用後端接口獲取隨機生成的Nonce值。
    • 錢包籤名:構建包含Nonce值、域名、鏈ID等信息的籤名內容,使用錢包提供的方法進行籤名。
    • 發送籤名:將籤名發送給後端進行驗證。
  3. 獲取身分標識: 後端驗證籤名通過後,返回用戶身分標識(如JWT)。後續請求中帶上地址和身分標識,即可證明錢包所有權。

SIWE使用手冊:如何讓你的Dapp更加強大?

實踐指南

本文使用Next.js開發全棧應用,集成SIWE功能。以下是主要步驟:

  1. 安裝依賴: 使用create-next-app創建項目,並安裝SIWE相關依賴。

SIWE使用手冊:如何讓你的Dapp更加強大?

  1. 引入Wagmi: 在layout.tsx中引入WagmiProvider,配置SIWE相關接口。

SIWE使用手冊:如何讓你的Dapp更加強大?

  1. 添加連接按鈕: 實現連接錢包和籤名的按鈕組件。

SIWE使用手冊:如何讓你的Dapp更加強大?

  1. 接口實現:
    • Nonce生成:創建隨機字符串並與地址關聯。
    • 籤名驗證:後端驗證籤名內容,檢查Nonce值,生成JWT。

SIWE使用手冊:如何讓你的Dapp更加強大?

  1. 優化: 建議使用專門的節點服務(如ZAN)提升接口響應速度。

通過以上步驟,即可實現一個基本的SIWE登入框架,爲Dapp提供更安全、可靠的身分驗證機制。

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 6
  • 分享
留言
0/400
GasFeeCrybabyvip
· 07-18 18:14
搞个梯子登上eth才不费气费吧
回復0
链上福尔摩斯妹vip
· 07-18 03:49
钱包签名 SIWE?小道消息称某些蓝筹惨遭薅羊毛 个人脑补待考证
回復0
资深空投收割机vip
· 07-18 03:32
终于不用到处备份密码了~
回復0
Web3教育家vip
· 07-18 03:29
*调整眼镜* web3 认证终于做对了,老实说
查看原文回復0
智能合约恐惧症vip
· 07-18 03:27
钱包签名都不会 咋搞
回復0
币圈资深幸存者vip
· 07-18 03:23
这验证方便好多啊嗳
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)