redis-auth-baileys
Version:
A Redis-based authentication state management system for Baileys, similar to Baileys' useMultiFileAuth, providing scalable and production-ready session storage for WhatsApp bots.
86 lines (53 loc) • 2.44 kB
Markdown
# redis-auth-baileys
A Redis-based authentication state management system for Baileys, designed for scalable and production-ready WhatsApp chatbot authentication. This library provides a robust alternative to Baileys' `useMultiFileAuth` by storing the full authentication state in Redis, enabling distributed and persistent session management.
## Features
- Full authentication state storage in Redis for production readiness
- Async mutex locking to ensure safe concurrent access
- Easy integration with Baileys WhatsApp library
- Supports scalable session storage for chatbots and WhatsApp automation
- Simple API for reading, writing, and removing auth state data
- Environment variable support for Redis configuration
## Installation
Install the package dependencies using npm:
```bash
npm install baileys dotenv express redis async-mutex
```
## Usage
```javascript
const { useRedisAuthState } = require('redis-auth-baileys');
const redisConfig = {
password: process.env.REDIS_PASSWORD,
host: process.env.REDIS_HOST,
port: parseInt(process.env.REDIS_PORT),
};
const { state, saveCreds } = await useRedisAuthState(redisConfig, process.env.REDIS_PREFIX);
// Use `state` with Baileys connection and call `saveCreds` to persist credentials
```
## Configuration
Set the following environment variables to configure Redis connection:
- `REDIS_PASSWORD` - Password for Redis authentication
- `REDIS_HOST` - Redis server hostname or IP address
- `REDIS_PORT` - Redis server port (usually 6379)
- `REDIS_PREFIX` - Prefix for Redis keys to avoid collisions
## How It Works
This module uses Redis to store the full Baileys authentication state, including credentials and keys. It uses async mutex locks to ensure safe concurrent access to Redis keys, preventing race conditions in multi-instance environments.
## Dependencies
- [baileys](https://www.npmjs.com/package/baileys) - WhatsApp Web API client
- [redis](https://www.npmjs.com/package/redis) - Redis client for Node.js
- [async-mutex](https://www.npmjs.com/package/async-mutex) - Mutex locks for async operations
- [dotenv](https://www.npmjs.com/package/dotenv) - Environment variable loader
- [express](https://www.npmjs.com/package/express) - Web framework (optional, if used in your project)
## License
ISC License © lifanxc
## Author
Lifanxc
Feel free to contribute or open issues for improvements or bug fixes.