禁用IBM Bluemix Node-RED服务器API的HTTP客户端调用

时间:2017-01-12 12:06:00

标签: node.js ibm-cloud node-red

我正在使用IBM Bluemix生成Node-RED流。 Node-RED代码充当服务器,客户端通过API调用Node-RED。

客户端可以通过HTTP和HTTPS方法调用Bluemix Node-RED服务器API。我需要禁用in-comming HTTP调用。

  1. 是否可以使用通过bluemix.setting等禁用in-comming HTTP调用的任何方法。

  2. 我在HTTP IN节点之后使用了函数节点。检查标头以识别请求是HTTP或HTTPS。如果是HTTP,则设置响应头,如下所示。

    msg.res.sendStatus(403).send('HTTP disabled')    
    msg.res.sendStatus(403)    
    msg.res.status(403)
    
  3. 在我得到的所有时间

    Deprecated call to msg.res.sendStatus
    Deprecated call to msg.res.status
    

    我想如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

  1. 要禁用admin api,您应将httpAdminRoot设置为false。或者,您可以使用adminAuth启用对admin api的访问控制 - http://nodered.org/docs/security

  2. 为了响应HTTP In节点收到的HTTP请求,您必须设置消息的相应属性并将其传递给HTTP Response节点。您不能直接调用msg.res的函数 - 根据您获得的日志消息而弃用。 HTTP Response节点的信息选项卡描述了您可以设置的属性,包括:

    • payload作为回复正文
    • 发送
    • statusCode,如果设置,则用作响应状态代码(默认值:200)
  3. 例如,您的Function节点会执行:

    msg.statusCode = 403;
    msg.payload = "HTTP disabled";
    return msg;
    

    然后将Function节点连接到HTTP Response节点。