#express #authentication #session-cookies #express-session
Вопрос:
У меня возникли некоторые проблемы с сессией в моем приложении. Чтобы выразить это в контексте, это мультитенантное приложение, состоящее из двух частей (на самом деле это два приложения), одна из которых-ReactJS, которая обслуживает наше интерфейсное приложение. Другой — это сборка REST API с помощью express. В настоящее время я использую express-session и PassportJS с хранилищем Redis для проверки подлинности. Моя конфигурация сеанса такова
app.set('trust proxy', 1);
app.use(session({
secret: SESSION_SECRET,
resave: false,
saveUninitialized: true,
store: new RedisStore({ client: redisClient }),
name: 'sess',
cookie: { secure: true, httpOnly: true, sameSite: true }
}));
Проблема, с которой я сталкиваюсь , заключается в следующем:
в том же браузере пользователь входит client-A.our-domain.com
, входит в систему, использует приложение и т. Д.
Затем он входит client-B.our-domain.com
, вот где возникает проблема, мой сервер ( api.our-domain.com
) получает файл cookie аутентификации от другого приложения ( client-A
), и поскольку этот пользователь, находящийся внутри файлов cookie, не существует, мой сервер возвращает ошибку, и пользователь не может использовать приложение. Я не уверен, как я могу это увидеть, или возможно ли это сделать с помощью этого метода аутентификации, который я использую.
Obs: эта проверка подлинности должна обеспечивать доступ браузеров из client-A.our-domain.com
, client-B.our-domain.com
, и client-own-domain.com
.