Из того, что я могу сделать после выхода из внутреннего порта: 5000 и перенаправления на порт: 3000 (домашняя страница моего веб-интерфейса), сеанс аутентификации прекращается.
Что я делаю: щелчок по Войдите в кнопку Google, войдите в систему с хорошей учетной записью, перенаправьте на мою домашнюю страницу внешнего интерфейса, где выполняется запрос на выборку и получает информацию о профиле пользователя, вошедшего в систему.
Я выполняю вход с помощью Google oAuth с паспортом. js. Пн goose сохраняет информацию о сеансе и профиле пользователя. req.isAuthenticated () должен быть равен true на всех маршрутах до выхода из системы. Вместо этого все работает до самой последней точки, где я повторно обращаюсь к домашней странице внешнего интерфейса.
app.get(
"/auth/google",
passport.authenticate("google", { scope: ["profile", "email"] })
);
app.get(
"/auth/google/login",
passport.authenticate("google", { failureRedirect: "/new" }),
(req, res) => {
console.log(` Authentication Status: ${req.isAuthenticated()}`); // READS AS TRUE
console.log(` User? : ${req.user}`); /// SHOWS USER INFO
console.log("end of user status before redirect.");
res.redirect("http://localhost:3000/");
}
);
ПРОБЛЕМА:
О последней функции из того, что Я могу сказать, что все работает как положено вплоть до res.redirect. если я не введу команду req.logout (), она должна быть в состоянии отслеживать мою сессию, а на бэкэнде req.isAuthenticated должен иметь значение true. Вместо этого в других маршрутах, где у меня есть настройка условных выражений, req.isAuthenticated читает false.
// quick fetch request I run on front end to show user as logged in and profile info.
app.get("/getuser", (req, res) => {
console.log("user CHECK :", req.user); // READS UNDEFINED HERE
console.log(`is authenticated:`, req.isAuthenticated()); // READS FALSE HERE
if (req.isAuthenticated()) {
const user = req.user;
console.log("user:", req.user);
res.json({ user: user, isAuthenticated: true });
} else {
const user = false;
console.log("user:", req.user);
res.json({ user: false, isAuthenticated: false });
}
});
Становится странным ...
Мой браузер получает готовый файл connect.sid ie, и моя база данных сохраняет пользователя и сессия.
из chrome файлов cookie браузера на localhost:
снимок экрана созданной сохраненной учетной записи из сеанса в моей базе данных
Я уже проверил несколько потоков переполнения стека на этом. Все они, похоже, не помогли мне.