IBM bluemix 上 NodeRED 中的 WebSocket 标头

Posted

技术标签:

【中文标题】IBM bluemix 上 NodeRED 中的 WebSocket 标头【英文标题】:WebSocket Headers in NodeRED on IBM bluemix 【发布时间】:2017-01-19 09:27:50 【问题描述】:

我知道 WebSocket api 没有定义标头。

    根据this,我们可以使用 URL 设置基本身份验证。

ws = new WebSocket("ws://username:password@example.com/service")

在 NodeRED(WebSocket IN 节点)中,需要对仅使用提供的用户名和密码进行连接的用户进行身份验证。请让我知道在 NodeRED 中处理这个?

    下一个替代方案是客户端上的 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" 

【问题讨论】:

不清楚你在这里问什么。您是否正在尝试对 Node-RED 中的 WebSocket 侦听器的传入连接进行身份验证? 是的。我正在尝试验证到 WebSocket In 节点的传入连接。 【参考方案1】:

目前我认为这是不可能的。

Node-RED 无权访问将 HTTP 连接转换为 WS 连接的 HTTP 升级请求,而在该连接中必须进行任何身份验证。

这可能应该更详细地研究,看看是否有什么可以做的。

【讨论】:

这很糟糕。那么如何阻止来自未授权用户的未授权请求? 目前此功能不可用,NodeRED 开发团队将在未来添加此功能。我在一月份向他们提出了更改请求。

以上是关于IBM bluemix 上 NodeRED 中的 WebSocket 标头的主要内容,如果未能解决你的问题,请参考以下文章

Bluemix 中的 IBM Watson Visual Recognition Service 总是返回空内容

IBM Bluemix 平台中的设备载入

IBM Bluemix 中的推送通知注册选项卡位置

如何在 IBM Bluemix 中查看调试日志

云服务上的 IBM Bluemix 应用程序安全性

我可以在没有 Bluemix 的情况下使用 IBM Watson 服务吗?