мой интерфейс и серверная часть не используют файлы cookie - PullRequest
0 голосов
/ 10 июля 2020

Я пытался заставить свой интерфейс и серверную часть делиться файлами 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 этого не делает.

1 Ответ

0 голосов
/ 10 июля 2020

Попробуйте эту конфигурацию: {withCredentials: true}

...