Как отправить куки на клиент Socket.io с сервера? - PullRequest
0 голосов
/ 21 ноября 2018

На моем клиенте я делаю это:

  useEffect(() => {
    socket.emit('login', myLoginCode)
  }, [])

На серверной стороне ранее я делал это:

app.get('login', (req, res) => {
      const cookieProtected = {
        maxAge: 946080000000,
        httpOnly: true,
        secure: true,
        sameSite: true
      } 
      res.cookie('id', login, cookieProtected)
      res.cookie('session', encryptSession, cookieProtected)
      res.cookie('logged', 'true', {
        maxAge: 946080000000,
        secure: true,
        sameSite: true
      })
})

Но как я могу сделать то же самое с сокетом?

  socket.on('login', loginCode => {
     // How to to place cookies in user browser from here?
    }

Может быть, есть способ отправить заголовки с помощью socket.emit?

1 Ответ

0 голосов
/ 25 ноября 2018

У нас нет способа сделать это без переписывания библиотеки ввода-вывода, поэтому единственный вариант - установить куки на стороне клиента.

Теперь я просто проверяю пользователя на сервере и отправляю куки клиента как объект, затем на клиентя делаю так:

document.cookie =
    'id=' +
    loginData.id +
    '; expires=Fri, 31 Dec 9999 23:59:59 GMT; secure; samesite=strict; path=/'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...