express-session - req.session не показывает сохраненную сессию - PullRequest
0 голосов
/ 23 февраля 2019

Я не могу просмотреть данные, сохраненные в req.session, после сохранения userId после входа пользователя в систему.

Когда я утешаю сеанс из функции входа в систему, я получаю правильные данные ...

Session {
  cookie:
   { path: '/',
     _expires: 2019-02-23T12:17:24.134Z,
     originalMaxAge: 7200000,
     httpOnly: true,
     sameSite: true,
     secure: false },
  userId: 4 }

Но когда я получаю console.log (req.session) из других маршрутов после этого, я получаю новый пустой сеанс

Session {
  cookie:
   { path: '/',
     _expires: 2019-02-23T12:12:47.282Z,
     originalMaxAge: 7200000,
     httpOnly: true,
     sameSite: false,
     secure: false } }

Я работаю на своем локальном хосте, используя интерфейс React на порту 3000 иУзел / Экспресс с экспресс-сессией и редис-соединением.Когда я просматриваю свой Redis, я правильно вижу сохраненный сеанс.

Это мой код сеанса ...

app.use(
  session({
    store,
    name: 'sid',
    saveUninitialized: false,
    resave: false,
    secret: 'secret',
    cookie: {
      maxAge: 1000 * 60 * 60 * 2,
      sameSite: true,
      secure: false
    }
  })
)

Я испробовал все разные значения для этих параметров, и ничего не работает.Пожалуйста, помогите!

1 Ответ

0 голосов
/ 23 февраля 2019

Ответ был получен из набора ответов RobertB4 https://github.com/expressjs/session/issues/374

Видимо, эта проблема встречается часто при использовании промежуточного программного обеспечения CORS и выборки api.Во всех ваших вызовах извлечения вам нужно отправить свойство credentials, установленное на «include», а в вашем промежуточном программном обеспечении cors вам нужно установить опцию для credentials: true.Это не достаточно хорошо, чтобы сделать одно или другое, вы должны сделать оба ...

fetch('url', {
      credentials: 'include'
    })



const corsOptions = {
  credentials: true
}
...