Раньше я делал полнофункциональное приложение с рендерингом на стороне клиента, но по какой-то причине мое приложение дает неопределенное значение для req.user
при выполнении запроса get.
Я объясню и постараюсь быть максимально подробным
Сначала я делаю запрос от клиента (http://localhost:3000)
axios.get("http://localhost:8080/auth/google").then(response
Это мой URL обратного вызова (http://localhost:8080)
router.get("/google/callback", passport.authenticate('google'), (req, res) => {
res.redirect(http://localhost:3000/home)
})
При этом я ожидал, что мое приложение будет хранить cookie для localhost:3000
, т. Е. Всякий раз, когда / где бы я ни делал запрос на маршрутизацию, где есть промежуточное ПО isLoggedIn, я должен иметь возможность доступа к этому маршруту с моего клиента ( http://localhost:3000/) т.е.
отправка запроса от моего клиента
axios.get("http://localhost:8080/home").then(response
к маршруту (http://localhost:8080)
router.get("/home", MiddlewareAuth.UserLoggedIn, (req, res) => {
res.send(req.user)
})
должен выдавать / возвращать req.user скорее он возвращает неопределенное значение (на самом деле выдает ошибку, поскольку в моем промежуточном ПО я устанавливаю res.status (401), если пользователь не вошел в систему.
Теперь, если я вручную перехожу к http://localhost:8080/home
, я вижу req.user
в качестве ответа (невозможно увидеть при выполнении запроса от http://localhost:3000 до http://localhost:8080/home
).
Я подозреваю, что мои куки не сохраняются для localhost: 3000 /
Вот так я инициализирую свою сессию
app.use(cors({
'allowedHeaders': ['sessionId', 'Content-Type'],
'exposedHeaders': ['sessionId'],
'credentials': true,
'origin': ['http://localhost:3000', 'http://192.168.0.86:3000'],
}))
//Storing cookies on the client side
app.use(cookieSession({
keys: ["abbcbba2"],
maxAge: 24 * 60 * 60 * 1000
}))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended: true}))
//Passport intialize
app.use(passport.initialize());
app.use(passport.session());
Может кто-нибудь, пожалуйста, помогите мне найти проблему