Как отправить новые Cookies по socketio?

Использую для соединения с сервером socketio
1. Загружаю разметку и скрипты
2. Добавляю в cookies новое значение JavaScrip'ом
3. Делаю соединение socketio
socket = io.connect(global.host + '/' + namespace, global.socket_cfg);
socket.on('connect', function () {});

На сервере не получаю нового значения добавленного JavaScrip'ом(2), а только старые которые были при запросе страницы(1).
Есть ли возможность без перезагрузки страницы отправить новые Cookies (динамически добавленные) по сокету
  • Вопрос задан
  • 2361 просмотр
Пригласить эксперта
Ответы на вопрос 1
vool
@vool
Разработчик
Через сокеты невозможно отправить куки, поправьте меня если я не прав. Но зато можно перенаправить его на специальную страницу которая и устанавливает куки, например:

app.get("/update-cookie", (req, res) => {
    res.cookie("userCookie", "value", {
      secure: true,
      httpOnly: true,
      maxAge: 672 * 60 * 60 * 1000
    });
    res.send(`<h1>Подождите, вас перенаправят через 500 миллисекунд, мы устанавливаем куки</h1><br><script>setTimeout(() => {
    location.replace("https://jslearn.teleweb.repl.co/profile/");
    }, 500);</script>`);
});

А на клиенте просто:

location.href = "https://.../update-cookie";

Через сокеты мы можем только получить куки:

const cks = require("cookie");
...
socket.on("text", (data) => {
   let value = cks.parse(socket.handshake.headers.cookie).userCookie;
});


Надеюсь это вам поможет))

С наступающим 2023 годом вас))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы