一尘不染

保护Socket.io

node.js

我正在使用基于Node.js的https服务器,该服务器使用HTTP Basic进行身份验证(这很好,因为数据是通过SSL加密连接发送的)。

现在我想提供一个Socket.io连接

  1. 加密和
  2. 仅适用于经过身份验证的用户。

问题是如何做到这一点。我已经发现{ secure: true }在连接到套接字时需要在客户端JavaScript代码中指定,但是如何在服务器端强制套接字连接只能在SSL上运行,并且仅适用于经过身份验证的用户?

我猜想SSL是一件容易的事,因为Socket.io服务器仅绑定到https服务器,所以它应该仅使用SSL运行,并且不可能在(另外)运行的http服务器上运行它,
对?

关于另一件事,我丝毫不了解如何确保只有在用户使用HTTP Basic成功通过身份验证后才能建立套接字连接。

有任何想法吗?


阅读 267

收藏
2020-07-07

共1个答案

一尘不染

尽管Linus的答案基本上是正确的,但我现在使用session.socket.io以更简单的方式解决了该问题-
基本上可以完成相同的任务,但是编写的自定义代码更少。

2020-07-07