You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过ZeroDev在后端验证用户并匹配对应钱包地址?

ZeroDev + Web3Auth 后端验证及地址匹配解决方案

核心原因:Web3Auth idToken 返回的是其托管的外部拥有账户(EOA)地址,而ZeroDev生成的是智能合约钱包(AA钱包)地址,二者本身并非同一对象,需通过身份绑定+签名验证的方式完成后端验证与地址关联。

1. 前端传递验证数据到后端

前端需向后端提交三个关键信息:

  • Web3Auth 生成的 idToken:用于验证用户的Web3Auth身份合法性
  • ZeroDev 智能合约钱包地址:通过ZeroDev签名器直接获取的地址
  • 签名结果:前端用ZeroDev签名器对后端生成的随机nonce签名后的字符串(用于证明用户拥有该ZeroDev钱包控制权)

2. 后端验证Web3Auth ID Token合法性

通过Web3Auth的JWKS公钥校验idToken的签名有效性,解析出用户唯一标识(sub字段)及Web3Auth托管EOA地址:

const jwt = require('jsonwebtoken');
const jwksClient = require('jwks-rsa');

// 初始化JWKS客户端,拉取Web3Auth公钥
const client = jwksClient({ jwksUri: 'https://api.web3auth.io/jwks' });

function getSigningKey(header, callback) {
  client.getSigningKey(header.kid, (err, key) => {
    const signingKey = key.publicKey || key.rsaPublicKey;
    callback(null, signingKey);
  });
}

// 验证并解析idToken
async function verifyWeb3AuthToken(idToken) {
  return new Promise((resolve, reject) => {
    jwt.verify(idToken, getSigningKey, { algorithms: ['RS256'] }, (err, decoded) => {
      err ? reject(err) : resolve(decoded);
    });
  });
}

3. 验证ZeroDev钱包与用户身份的关联关系

采用EIP-1271智能合约签名验证(ZeroDev钱包遵循该标准),确认前端传入的ZeroDev地址确实属于当前用户:

  1. 后端生成随机nonce,返回给前端;
  2. 前端用ZeroDev签名器对nonce做签名,将签名结果、ZeroDev地址、idToken一并传回;
  3. 后端调用ZeroDev钱包合约的isValidSignature方法,验证签名有效性:
// 实现EIP-1271验证逻辑
interface IERC1271 {
    function isValidSignature(bytes32 hash, bytes calldata signature) external view returns (bytes4);
}

function verifyZeroDevSignature(address zeroDevAddr, bytes32 nonceHash, bytes calldata signature) public view returns (bool) {
    IERC1271 wallet = IERC1271(zeroDevAddr);
    bytes4 magicValue = wallet.isValidSignature(nonceHash, signature);
    // EIP-1271标准返回值为0x1626ba7e
    return magicValue == 0x1626ba7e;
}

4. 完成用户注册/验证

  • 当idToken验证通过,且ZeroDev签名验证通过后,后端将Web3Auth用户的sub(唯一ID)与ZeroDev钱包地址绑定存储;
  • 后续用户请求时,只需验证idToken有效性,即可通过sub查询到对应的ZeroDev钱包地址,完成身份校验。

内容的提问来源于stack exchange,提问作者common task

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 19:52:12