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

如何通过whatsapp-web.js实现重启脚本后保持登录状态?

解决whatsapp-web.js重启后无需重复扫码登录的问题

你当前的代码没有配置LocalAuth认证策略,这是whatsapp-web.js用来持久化登录会话的核心功能,所以每次重启都会要求重新扫码。以下是完整的可行解决方案:

修改后的完整代码

const { Client, LocalAuth, MessageMedia } = require('whatsapp-web.js');
const fs = require('fs');
const qrcode = require('qrcode'); // 确保已安装该模块

const client = new Client({
    ffmpegPath: "C:/ffmpeg/bin/ffmpeg.exe",
    auth: new LocalAuth() // 启用本地会话持久化
});

client.on('qr', async qr => {
    qrcode.generate(qr, { small: true });
});

client.on('ready', async function () {
    console.log('Client is ready!');
});

// 启动客户端(原代码遗漏的关键步骤)
client.initialize();

关键改动与注意事项

  • 启用LocalAuth:在Client初始化参数中加入auth: new LocalAuth()后,库会自动在项目根目录创建.wwebjs_auth文件夹,存储登录会话凭证,重启脚本时会自动读取该文件恢复登录状态。
  • 安装依赖模块:代码中使用qrcode生成二维码,需先执行安装命令:
    npm install qrcode
    
  • 调用initialize():原代码缺少启动客户端的关键步骤,必须调用client.initialize()才能触发登录流程。
  • 重置损坏会话:如果之前的会话数据导致无法自动登录,可删除项目根目录下的.wwebjs_auth文件夹,重新扫码登录一次,让库生成新的有效会话文件。
  • 权限检查:确保运行脚本的用户对项目目录有读写权限,否则LocalAuth无法创建或读取会话文件。

内容的提问来源于stack exchange,提问作者Dymo Kilan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 06:54:46