When running multiple dashboard replicas behind a load balancer, you must use a shared session store compatible with express-session to prevent CSRF token validation failures.
Recommended stores: connect-redis, connect-mongo, connect-pg-simple, or memorystore.
Requirements:
- Use the
sessionStore option in the dashboard initialization. - Set
cookieSessionSecret to the same value across all replicas.
const express = require('express');
const ParseDashboard = require('parse-dashboard');
const { createClient } = require('redis');
const RedisStore = require('connect-redis').default;
// Instantiate Redis client
const redisClient = createClient({ url: 'redis://localhost:6379' });
redisClient.connect();
// Instantiate Redis session store
const cookieSessionStore = new RedisStore({ client: redisClient });
// Configure dashboard with session store
const dashboard = new ParseDashboard({
apps: [...],
users: [...],
}, {
cookieSessionStore,
cookieSessionSecret: 'your-secret-key',
});