Я пытался заставить свой интерфейс и серверную часть делиться файлами cookie, но сервер на самом деле их не получает. у меня есть ядро, например
app.use(
cors({
origin: 'http://localhost:3000',
credentials: true,
})
);
, и они по-прежнему не отправляют файлы cookie!
даже при том, что у меня есть маршрут, который устанавливает повар ie на внешнем интерфейсе из внутреннего
res.cookie('auth-token', token, {
httpOnly: true,
maxAge: 86400,
});
, и он отлично работает после того, как я использовал cors.
мое промежуточное ПО проверки аутентификации:
exports.verifyAuth = asyn c (req, res, next) => {
try {
const token = req.cookies['auth-token'];
if (!token) {
return res.status(401).json({ msg: 'No token, authorization required.' });
}
const decodedToken = jwt.verify(token, process.env.JWT_SECRET);
req.user = decodedToken.user;
next();
} catch (err) {
res.status(401).json({ msg: 'No token, authorization required.' });
}
};
РЕДАКТИРОВАТЬ:
- Я отлаживал его и, по-видимому, это всегда первый раз, когда он не отправляет файлы cookie, и это потому, что я использую getInitialProps для отправки запроса, но я предполагаю, что запрос происходит до загрузки файлов cookie, поэтому я пытаюсь найти способ передать файлы cookie в запрос вручную, потому что fetch этого не делает.