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

如何在Heroku服务器保存whatsapp.web.js登录信息实现重启自动重连

解决Heroku部署whatsapp.web.js自动重连问题

可以实现服务器重置后自动重新连接,核心是把多设备模式下的会话数据持久化存储,而不是依赖Heroku的临时文件系统(重启后本地文件会全部丢失)。

关键思路

WhatsApp多设备模式下,登录会话不是存在单一的session.json文件,而是由WABrowserId、WASecretBundle、WAToken1、WAToken2等核心字段组成的对象。只要把这个对象存在持久化存储中,重启后客户端就能读取并自动恢复登录状态。

具体实现步骤

  1. 选择持久化存储服务
    Heroku支持多种Add-ons来做持久化,推荐用Heroku Redis(轻量、适合存储小体积的会话数据),或者PostgreSQL。

  2. 自定义认证策略
    替换whatsapp.web.js默认的LocalAuth(本地文件存储),实现自己的认证策略,从持久化存储中读取和写入会话数据。

    以Redis为例,先安装依赖:

    npm install ioredis
    

    然后编写自定义认证类:

    const { Client } = require('whatsapp-web.js');
    const Redis = require('ioredis');
    
    // 初始化Redis客户端,Heroku会自动把Redis URL注入环境变量
    const redisClient = new Redis(process.env.REDIS_URL);
    
    class RedisAuth {
        // 读取会话数据
        async getSession() {
            const sessionData = await redisClient.get('whatsapp_session');
            return sessionData ? JSON.parse(sessionData) : null;
        }
    
        // 保存会话数据
        async saveSession(session) {
            await redisClient.set('whatsapp_session', JSON.stringify(session));
        }
    
        // 清除会话(可选,用于登出场景)
        async clearSession() {
            await redisClient.del('whatsapp_session');
        }
    }
    
    // 初始化WhatsApp客户端,使用自定义的Redis认证策略
    const client = new Client({
        authStrategy: new RedisAuth()
    });
    
    client.on('ready', () => {
        console.log('客户端已就绪,自动登录成功');
    });
    
    client.on('auth_failure', () => {
        console.log('认证失败,需重新扫码登录');
        // 这里可以添加清理旧会话的逻辑
        redisClient.del('whatsapp_session');
    });
    
    client.initialize();
    
  3. 配置Heroku环境

    • 安装Heroku Redis Add-on:在Heroku控制台的应用页面,进入"Resources"标签,搜索并添加Heroku Redis。
    • 确保REDIS_URL环境变量已自动配置(Heroku会自动设置)。

注意事项

  • Heroku的dyno每天会自动重启一次,只要会话数据在Redis中存在,重启后客户端会自动读取并恢复连接,无需手动扫码。
  • 多设备会话的有效期较长,但如果超过30天未使用可能失效,此时需要重新扫码并更新存储的会话数据。
  • 绝对不要依赖Heroku的本地文件系统存储任何需要持久化的数据,所有关键数据都要存在外部存储服务中。

内容的提问来源于stack exchange,提问作者yossi lerer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 00:36:23