Как получить данные из файлов cookie, отправленных с помощью «httpOnly: true»? - PullRequest
0 голосов
/ 09 июля 2020

В бэкэнде файлы cookie отправляются следующим образом:

    jwt.sign(
      payload,
      process.env.JWT_SECRET,
      { expiresIn: 31556926 },
      (err, token) =>
        res
          .cookie("token", token, {
            httpOnly: true,
            maxAge: 31556926,
          })
          .json({ success: true, newUser })
    );

Но в интерфейсе я не могу получить «токен» из файлов cookie.

Он не отображается в Chrome , и говорят, что это потому, что Chrome не устанавливает файлы cookie на localhost.

Я пытался использовать console.log(document.cookie); для его печати, но в консоли ничего не появилось, и я думаю, это потому, что httpOnly настроен так, чтобы файлы cookie были невидимы из document.cookie?

Тогда как я могу получить этот "токен" из файлов cookie? Мне нужно отправить его обратно (через socket.io) на бэкэнд для аутентификации.

Спасибо!

1 Ответ

1 голос
/ 09 июля 2020

Файлы cookie , установленные с флагом HttpOnly, недоступны из JavaScript.

Но файлы cookie обычно отправляются на сервер настроек с каждым запросом. Как только сервер дает вашему браузеру команду сохранить Cook ie, браузер отправит обратно содержимое заголовка Cookie запроса.

Судя по приведенному выше фрагменту кода, похоже, что вы используя Express. Для доступа к токену с сервера

const cookieParser = require('cookie-parser'); // Don't forget to npm install
app.use(cookieParser()); // Before any routes that use the cookie

/* from inside your route handler */
    req.cookies.token
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...