2017-01-19 1 views
0

WebSocket API가 정의되지 않은 헤더를 알고 있습니다.IBM bluemix의 NodeRED에있는 WebSocket 헤더

  1. this에 따라 우리는 URL로 기본 인증을 설정할 수 있습니다.

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

    (노드 웹 소켓)

제공 사용자 이름과 비밀번호 만 연결하는 사용자를 인증 할 필요가있다. 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

여기에 귀하가 묻는 것이 명확하지 않습니다. Node-RED의 WebSocket 리스너에 대한 수신 연결을 인증하려고합니까? – hardillb

+0

예. WebSocket In 노드에 들어오는 연결을 인증하려고합니다. –

답변

1

현재로서는 불가능하다고 생각합니다.

Node-RED는 HTTP 연결을 인증을 수행해야하는 WS 연결로 변환하는 HTTP 업그레이드 요청에 대한 액세스 권한이 없습니다.

할 수있는 일이 있는지 확인하기 위해 더 자세히 살펴 봐야 할 내용입니다.

+0

이것은 매우 나쁩니다. 권한이없는 사용자로부터의 승인되지 않은 요청을 차단하는 방법은 무엇입니까? –

+0

현재이 기능을 사용할 수 없으며 앞으로 NodeRED 개발팀에서이를 추가 할 예정입니다. 나는 1 월에 그들에게 변경 요청을했다. –

관련 문제