🍁 金秋送福,大奖转不停!Gate 广场第 1️⃣ 3️⃣ 期秋季成长值抽奖大狂欢开启!
总奖池超 $15,000+,iPhone 17 Pro Max、Gate 精美周边、大额合约体验券等你来抽!
立即抽奖 👉 https://www.gate.com/activities/pointprize/?now_period=13&refUid=13129053
💡 如何攒成长值,解锁更多抽奖机会?
1️⃣ 进入【广场】,点头像旁标识进入【社区中心】
2️⃣ 完成发帖、评论、点赞、社群发言等日常任务,成长值拿不停
100% 必中,手气再差也不亏,手气爆棚就能抱走大奖,赶紧试试手气!
详情: https://www.gate.com/announcements/article/47381
#成长值抽奖赢iPhone17和精美周边# #BONK# #BTC# #ETH# #GT#
SIWE实战:三步打造以太坊身份验证系统
SIWE使用指南:让你的Dapp更强大
SIWE(Sign-In with Ethereum)是一种在以太坊上验证用户身份的方式,类似钱包发起交易,证明用户对钱包的控制权。目前身份验证已经非常简便,只需在钱包插件中对信息进行签名即可,大多数常见钱包插件都已支持。本文主要讨论以太坊上的签名场景。
是否需要SIWE
如果你的Dapp有以下需求,可以考虑使用SIWE:
但如果你的Dapp主要是查询功能,如类似etherscan的应用,则不一定需要SIWE。
你可能会疑惑,在Dapp上通过钱包连接后,不就已经证明了钱包所有权吗?这只对前端有效。对于需要后端支持的接口调用,仅传递地址是不够的,因为地址是公开信息,任何人都可以"借用"你的身份。
SIWE原理和流程
SIWE流程可概括为三个步骤:连接钱包 - 签名 - 获取身份标识。
连接钱包
这是常见的Web3操作,通过钱包插件在Dapp中连接钱包。
签名
签名步骤包括获取Nonce值、钱包签名和后端签名校验。
后端生成随机Nonce值并与地址关联。前端获取Nonce值后构建签名内容,包括Nonce值、域名、链ID等,使用钱包提供的方法签名。最后将签名发送给后端。
获取身份标识
后端校验签名通过后,返回用户身份标识(如JWT)。前端后续请求带上地址和身份标识,即可证明钱包所有权。
实践SIWE
我们将使用Next.js开发一个简单的SIWE demo,展示基本流程。注意,此demo仅用于介绍,生产环境使用可能存在安全问题。
准备工作
npx create-next-app@14
npm install antd @ant-design/web3 @ant-design/web3-wagmi wagmi viem @tanstack/react-query --save
实现连接钱包按钮
实现后端接口
优化:使用专门的节点服务提升响应速度
通过以上步骤,我们就实现了一个基本的SIWE登录框架。使用专业节点服务可以大幅提升验证速度,建议在生产环境中采用。