在钱包里看到同一个DApp连着两三个会话,点一次连接就弹一次授权窗口——你猜得没错,旧会话确实该删,而且得在重新连接之前就删干净。
这不是玄学,是WalletConnect v2的设计问题。当你发起新连接时,如果钱包里已经存在同一个DApp的旧会话,系统会报错"Connection declined. Connection can be declined if a previous request is still active"。旧会话还在活跃,新请求就直接被拒绝了。所以DApp那边接到的反馈是"没连上",于是再弹一次让你授权,陷入死循环。
第一步:从钱包里手动清掉旧会话
操作目标:把卡住的旧连接彻底删掉,操作步骤如下:
打开你的钱包App(MetaMask、Trust Wallet、imToken都适用)
找到"已连接站点"或"WalletConnect会话"列表。imToken用户路径是:设置 → 已授权的应用;Trust用户是:点击右上角扫码图标,进入WalletConnect会话列表
把当前这个DApp相关的条目全部删除,不要只删一个。如果有多个同名的,一并清掉
完成标准:已连接站点列表里找不到这个DApp的任何条目
很多钱包App在启动时会自动尝试恢复所有历史会话。如果你挂了十几个旧会话,每次打开钱包都要重连一遍,既耗流量又容易触发DDoS防护机制。定期清理旧会话是基础操作。
第二步:断开后再连接,流程必须完整
清理完旧会话后,回到DApp页面,重新点"连接钱包"。
关键操作:连接成功后,务必在钱包里完成确认(点"连接"或"批准"),然后回到DApp刷新页面。不要只看到地址出现就以为完事了——有些DApp在你断开重连后,还会要求一次授权确认才能恢复完整功能。
完成标准:DApp页面显示你的钱包地址,交易按钮恢复可点击状态。
如果清理完旧会话还是重复弹窗
问题可能出在DApp那边的代码实现上。有些DApp没有正确检查当前链上的代币授权额度,每次打开都让你重新授权一遍。这时候你换一个浏览器(比如从Safari切到Chrome)或者用隐私模式打开DApp,看看是否还重复要求授权——如果是,那就不是你的问题,是DApp本身的逻辑缺陷。
风险提醒:删除授权也是一笔链上交易,需要Gas费。如果在以太坊主网上操作,网络拥堵时可能花费几美元到十几美元不等。确保钱包里有对应的主链代币(ETH/MATIC/BNB)作为手续费,否则删除操作会失败。
操作完成的校验方式:重新连接后,在钱包的"已连接站点"列表里确认只有一条当前DApp的会话。然后在DApp页面随便点一个只读操作(比如查看余额或池子信息),看是否弹第二次授权窗——如果只弹一次就正常了。



