首页 > 解决方案 > 如何向 coffescript HTTP-Listener (hubot) 添加身份验证

问题描述

我想为 Hubot 的咖啡脚本添加一个简单的用户密码身份验证。这应该充当向rocketchat 发送消息的“桥梁”。我设法在没有身份验证的情况下发出 HTTP-Post 请求。

到目前为止我得到的脚本工作得很好,但没有身份验证:

module.exports = (robot) ->
  robot.router.post '/hubot/say', (req, res) ->

    recipient = req.body.recipient
    message = req.body.message
    dm = req.body.directmessage
    response = "OK"
    robot.logger.info "DM: #{dm}; Recipient: #{recipient}; Message: #{message}"

    if dm == '0'
      #robot.logger.info "Message '#{message}' received for room #{recipient}"

      room = recipient
      user = robot.brain.userForId 'broadcast'
      user.room = room
      user.type = 'groupchat'

      if message
        robot.adapter.send({room, user: {} }, message)

    if dm == '1'
      user = recipient

      if message
        robot.adapter.sendDirect({ user: { name: "#{user}"} }, message)

    res.writeHead 200, {'Content-Type': 'text/plain'}
    res.end response

标签: coffeescripthubot

解决方案


Hubot 内置 express web 框架,robot.router实际上是一个express 路由器。因此,您可以使用basic-auth库或参考诸如Basic HTTP authentication with Node 和 Express 4之类的问题。


推荐阅读