我想在这里介绍几个方面。让我们展开。
我在我的一个应用程序中使用 Socket.io。在尝试让 JWT 对普通应用程序和 socket.io 客户端通用时,我有这些想法。
- 我发现 Socket.io 使用 HTTP(S) 协议(protocol)和 GET 方法 远的。或者它也支持 POST 吗?如果是这样,如何?如果不是,为什么?
- 虽然许多帖子声称使用查询参数来传递 JWT,这在 HTTPS 上不会“那么糟糕”,但鉴于大量浏览器扩展通常读取 URL,我有弹性这样做。所以我更倾向于使用 Headers。顺便说一句,这也是他们指定的工作。还是我被少量信息误导了?
- header 将我们带到下一个问题, header 和查询字符串如何通过网络传输?一个比另一个更安全吗? header 在途中对世界的可见度是否较低?
- 哦!以及如何在 Socket.io 客户端 中设置 header ?
帮助将不胜感激,谢谢!
附言如有必要,请更正帖子标题。
最佳答案
1) socket.io 顾名思义使用 websockets,所以它实际上应该使用 wss 协议(protocol),使用轮询和 https 只是一个后备 afaik。
2) 浏览器扩展也可以读取标题?我看不出一个比另一个有任何优势。
3) 作为 1 和 0?但是两者都是加密的(因为 https 和 wss)。
4) 你为什么想要那个?如果您想使用 socket.io,只需 .emit()
事件,这就是 socket.io 的全部内容。如果您不想要 websockets,而是想要一些自制的解决方案,请创建您自己的解决方案。
关于javascript - Socket.io - header - 查询字符串 - 安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54929138/