🔑 关键词:EIP-191EIP-712签名登录前后端认证Nonce合约钱包兼容签名钓鱼防护JWT


背景:Web3 登录不再依赖用户名密码

在 Web3 应用中,“登录”并不是传统意义上的账号+密码,而是通过钱包地址 + 签名认证的方式完成身份校验。其优势包括:

但这也带来了新的问题:


原理:Web3 签名登录的三步流程

1)用户连接钱包,获取地址
2)DApp 提供 message 或 typedData,用户用钱包签名
3)前端将地址 + 签名发送给后端,后端用公钥验证签名是否合法

签名标准对比:EIP-191 vs EIP-712

特性 EIP-191 EIP-712(推荐)
类型 纯文本签名 结构化数据签名
安全性 ❌ 易受钓鱼攻击 ✅ 防钓鱼,字段明确
合约验证兼容 ✅ EOA、部分合约钱包支持 ✅ 支持,常用于 MetaTx、Permit
应用场景 登录认证、简单交互 MetaTx、Permit、链上授权、登录安全
前端接口 signMessage(...) signTypedData(...)

前端实现:EIP-191 签名登录