🔑 关键词:
EIP-191、EIP-712、签名登录、前后端认证、Nonce、合约钱包兼容、签名钓鱼防护、JWT
在 Web3 应用中,“登录”并不是传统意义上的账号+密码,而是通过钱包地址 + 签名认证的方式完成身份校验。其优势包括:
但这也带来了新的问题:
1)用户连接钱包,获取地址
2)DApp 提供 message 或 typedData,用户用钱包签名
3)前端将地址 + 签名发送给后端,后端用公钥验证签名是否合法
| 特性 | EIP-191 | EIP-712(推荐) |
|---|---|---|
| 类型 | 纯文本签名 | 结构化数据签名 |
| 安全性 | ❌ 易受钓鱼攻击 | ✅ 防钓鱼,字段明确 |
| 合约验证兼容 | ✅ EOA、部分合约钱包支持 | ✅ 支持,常用于 MetaTx、Permit |
| 应用场景 | 登录认证、简单交互 | MetaTx、Permit、链上授权、登录安全 |
| 前端接口 | signMessage(...) |
signTypedData(...) |