Passport.js req.user объект не определен после изменения файла на стороне сервера (узел, экспресс) - PullRequest
0 голосов
/ 08 февраля 2019

Я использую passport.js для аутентификации пользователя в моем приложении, но я заметил, что после любых изменений в файлах сервера req.user не определен.Nodemon корректно перезагружает все файлы, но после нажатия кнопки «Обновить» - приложение не работает и req.user не определен.Что важно: это происходит только при изменении файлов на стороне сервера.Когда нет изменений, я могу многократно обновиться, и все работает хорошо.

Это мой код конфигурации:

app.use(
  session({
    secret: process.env.EXPRESS_SESSION_KEY,
    unset: 'destroy',
    saveUninitialized: false,
    resave: false
  })
);
app.use(bodyParser.urlencoded({ extended: false, credentials: true }));
app.use(bodyParser.json());
app.use(
  cors({
    origin: FRONTEND_URL,
    credentials: true
  })
);
app.use(passport.initialize());
app.use(passport.session());
app.use(express.static('../../dist'));

Я не могу найти никакого решения.Довольно раздражает пересборка всего приложения после любого изменения файла на стороне сервера.

Я также могу заметить, что req.session пуст после изменения файла.Почему это так?

Ответы [ 2 ]

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

Используйте ссылку ниже, чтобы увидеть, есть ли вещь, называемая Store .Используйте то, что на самом деле хранится с использованием сессий passportjs

https://blog.risingstack.com/node-hero-node-js-authentication-passport-js/

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

Вы не указали свойство store , поэтому в Express Session по умолчанию будет использоваться MemoryStore.Это сохраняет данные сеанса в памяти, поэтому при изменении кода на стороне сервера и запуске перезагрузки сервера хранилище сеансов стирается и все данные сеанса теряются.

Использование другого хранилища сеансов (например, хранилище файлов сеансов ), в котором данные хранятся где-то постоянно.

...