繁体   English   中英

如何从服务器向socket.io客户端发送cookie?

[英]How to send cookies to socket.io client from server?

在我的客户端,我这样做:

  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发送标头?

没有重写IO库就没有办法做到这一点,所以唯一的选择是在客户端设置cookie。

现在我只是在服务器上验证用户并像对象一样发送客户端cookie,然后在客户端上我喜欢这样:

document.cookie =
    'id=' +
    loginData.id +
    '; expires=Fri, 31 Dec 9999 23:59:59 GMT; secure; samesite=strict; path=/'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM