2017-01-19 11 views
0

Я знаю, что WebSocket api не определил заголовки.Заголовки WebSocket в NodeRED на IBM bluemix

  1. Согласно this, мы можем установить базовое значение с URL-адресом.

ws = new WebSocket("ws://username:[email protected]/service")

В NodeRED (WebSocket В узле) необходимо для аутентификации пользователей, которые подключаются только при условии имя пользователя и пароль. Сообщите мне об этом в NodeRED?

  1. Следующий вариант - заголовок Sec-WebSocket-Protocol на клиенте. Я тоже пробовал это. Но Node-RED не смог посмотреть, что я установил.
var token = "eyJhbGci"; 
var options = { 
    headers: { 
     "Authorization" : token 
    } 
}; 
var ws = new WebSocket("wss://example.com/path", options); 

Пожалуйста, дайте мне знать, как просмотреть эти клиентские входы в NodeRED и сделать надлежащие проверки подлинности клиента? Я вижу только следующее.

{ "payload": "Hi1", "_session": { "type": "websocket", "id": "fddc366c.0223c8" }, "_msgid": "47061971.b8f9e8" } 
+0

Непонятно, что вы просите здесь. Вы пытаетесь аутентифицировать входящие подключения к слушателю WebSocket в Node-RED? – hardillb

+0

Да. Я пытаюсь выполнить аутентификацию входящих соединений с узлом WebSocket In. –

ответ

1

В настоящее время я не думаю, что это возможно.

Узел Node-RED не имеет доступа к запросу HTTP Upgrade, который преобразует HTTP-соединение в WS-соединение, в котором должна произойти любая аутентификация.

Это то, что, вероятно, следует рассмотреть более подробно, чтобы узнать, есть ли что-либо, что можно было бы сделать.

+0

Это очень плохо. Так как блокировать несанкционированные запросы от неавторизованных пользователей? –

+0

В настоящее время это не доступно, и команда разработчиков NodeRED добавит это в будущем. Я сделал запрос на изменение к ним в январе. –