Я понял, что все, что мне нужно, это отправить пароль для аутентификации сразу после подключения клиента redis (client.auth(password)
. Мне пришлось согласиться на redislabs enterprise
для моего редис-хостинга, а также пришлось перейти с ioredis
на redis
из-за некоторых странных ошибок. Это код ниже
redis.js
import { createClient } from 'redis';
const {
PASSWORD: password,
REDIS_HOST: host, // On localhost, set to 'localhost' or '127.0.0.1'
REDIS_PORT: port, // On localhost, set to 6379
} = process.env;
// connect to Redis host with port and host set as environment variables
const client = createClient(port, host, { no_ready_check: true });
// If password is in environment variable, send password to the host for authentication
if (password) {
client.auth(password, (err) => {
if (err) throw err;
});
}
client.on('connect', () => console.log('connected to Redis'));
client.on('error', (err) => {
console.log('Redis Error:', err);
});
export default client;
Это необязательно, оно показывает только то, как подключенный клиент Redis используется в файле индекса.
index.js
import session from 'express-session';
import connectRedis from 'connect-redis';
import client from './redis'
const redisStore = connectRedis(session);
app.use(session({
secret: 'IwontTell',
name: '_stackOverflow',
resave: false,
saveUninitialized: true,
cookie: { secure: false },
store: new redisStore({ client, ttl: 86400 }),
}));
Это прекрасно работает как на локальном хосте, так и в Интернете. Надеюсь, это кому-нибудь поможет