A Redis-based authentication state provider for Baileys (WhatsApp Web API). Drop-in replacement for useMultiFileAuthState.
Baileys provides useMultiFileAuthState which stores session data in local files. This works for single-server setups but becomes problematic when:
- Running multiple instances or containers
- Deploying to serverless/ephemeral environments
- Needing centralized session management
This library stores session data in Redis instead.
npm install baileys ioredis pino pino-prettyimport makeWASocket, { useMultiFileAuthState } from "baileys";
const { state, saveCreds } = await useMultiFileAuthState("./auth_info");
const sock = makeWASocket({
auth: state,
});
sock.ev.on("creds.update", saveCreds);import makeWASocket from "baileys";
import { useRedisAuthState } from "./src/redis-auth-state.js";
const { state, saveCreds } = await useRedisAuthState({
sessionId: "my-session", // optional
ttl: 86400, // optional, in seconds
});
const sock = makeWASocket({
auth: state,
});
sock.ev.on("creds.update", saveCreds);| Option | Type | Description |
|---|---|---|
sessionId |
string | number |
Session identifier (auto-generated if omitted) |
ttl |
number |
Time-to-live in seconds for session keys (optional) |
| Property | Description |
|---|---|
state |
Auth state object for Baileys |
saveCreds |
Function to save credentials |
delete |
Function to delete the entire session |
clear |
Function to clear signal keys only |
id |
The session ID |
import makeWASocket from "baileys";
import { useRedisAuthState } from "./src/redis-auth-state.js";
const createSession = async (sessionId) => {
const { state, saveCreds, delete: deleteSession } = await useRedisAuthState({
sessionId,
});
const sock = makeWASocket({ auth: state });
sock.ev.on("creds.update", saveCreds);
sock.ev.on("connection.update", ({ connection }) => {
if (connection === "close") {
// Optionally delete session on logout
// deleteSession();
}
});
return sock;
};
// Manage multiple WhatsApp sessions
await createSession("user-1");
await createSession("user-2");- 🔐 Store WhatsApp session credentials in Redis
- 🔄 Drop-in replacement for
useMultiFileAuthState - ⏱️ Optional TTL support for session expiration
- 🔢 Auto-incremented session IDs
- 🚀 Efficient batch operations using Redis pipelines
- 🛑 Graceful shutdown handling
- Node.js 18+
- Redis server
MIT