Metamask登录
https://www.toptal.com/ethereum/one-click-login-flows-a-metamask-tutorial#how-the-login-flow-works
参考: https://zh.socialgekon.com/one-click-login-with-blockchain
后端需要在用户表中增加address
和nonce
字段。兼容其他登录方式,如邮件、facebook登录
字段 | 类型 | 说明 |
---|---|---|
address | varchar(42) | 账户地址, 唯一, 例如:0xf513e4e5Ded9B510780D016c482fC158209DE9AA |
nonce | varchar(100) | 随机数,每次登录都随机生成,且不会重复, 例如签名消息:1_0xf513e4e5ded9b510780d016c482fc158209de9aa_29933_1672989603538 |
- 后端
验签
,可以从签名中提取出签名对应的公钥,并获得相应的地址,因此,可以确定该签名是用该地址的私钥签名的,而不是用其他私钥签名的。 从签名中提取地址示例: https://github.com/amaurym/login-with-metamask-demo/blob/16170509d983954cb8fbc8e55ba70e028d8d692b/packages/backend/src/services/auth/controller.ts#L48