在我的客户上,我这样做:
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发送头文件吗?
答案 0 :(得分:4)
没有重写IO库,我们无法做到这一点,因此唯一的选择是在客户端设置cookie。
现在,我只是在服务器上验证用户并像对象一样发送客户端cookie,然后在客户端上我这样做:
document.cookie =
'id=' +
loginData.id +
'; expires=Fri, 31 Dec 9999 23:59:59 GMT; secure; samesite=strict; path=/'