SameSite Cookie标头和Websocket无法正常工作

问题描述

在我们设置sameSite之前:没有我们的游戏无法在任何第三方网站上运行。如该视频所示:https://youtu.be/_AYCvCrZyDk

网站已加载,但网络套接字无法创建连接,因此所有内容显示loading...,但未建立连接。

然后我们添加sameSite: 'None',如下所示,一切开始正常工作。

export function setJwtCookie(res,userId: number) {
    const payload: IJwtPayload = {userId: userId}
    const newToken = jwt.sign(payload)
    res.cookie('jwt',newToken,{httpOnly: true,secure: true,maxAge: COOKIE_TTL,sameSite: 'None'})
}

但是现在我们的少数玩家抱怨,如果他们同时在我们的网站或第3部分网站上玩,就会遇到上述问题。

他们在同一台计算机上尝试了不同的浏览器,不同的wifi连接,但无法正常工作。当我们上传没有sameSite: 'None'的版本时,它们可以正常播放。那么这是怎么回事?我们如何才能使每个人都玩游戏?

以下是方便和测试的版本。谢谢

  1. 包含sameSite: 'None'的版本-> colonist.io
  2. 不包含带有sameSite: 'None'的版本-> hexs.io
  3. colonist.io版本的iframe-> https://iogames.space/colonist-io

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)