Если у вас уже есть сеанс с проверкой подлинности через http в Express, то соединение socket.io действительно просто другое соединение http (фактически оно начинается с http-соединения и затем преобразуется в протокол webSocket (со слоем socket.io). сверху). Итак, если вы готовы доверять сеансу для следующего http-запроса от этого клиента, то ничто не отличается от доверия сеансу для входящего соединения socket.io от этого же клиента. Это одно и то же.
Где может быть полезно с нуля установить соединение socket.io, если у вас еще нет аутентифицированной http-страницы, с которой происходит соединение socket.io, либо из-за соединения socket.ioэто собственный API и собственный сервис, возможно, даже на отдельном хосте, поэтому нет «другой» аутентификации, на которую можно положиться.
Нужно ли использовать оба подхода для аутентификации, если вы уже делитесьсеансы с экспрессом.
Нет. Вы можете просто использовать экспресс-сеансу вас уже есть для того, чтобы теперь соединение socket.io исходило от одного и того же клиента.
Добавляет ли это какое-либо преимущество в безопасности?
Только если по какой-то причине выЯ хочу запрашивать аутентификацию при каждом новом запросе и вообще не полагаться на куки-файл сеанса, даже для http-запросов. Или, если нет файла cookie сеанса, потому что соединение socket.io идет к другому хосту.