coffeescript - 如何向 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
解决方案
Hubot 内置 express web 框架,robot.router
实际上是一个express 路由器。因此,您可以使用basic-auth库或参考诸如Basic HTTP authentication with Node 和 Express 4之类的问题。
推荐阅读
- javascript - BingMaps 是否可以在特定缩放级别以下禁用集群?
- r - 使用 Tidyverse 计算 REDCap 数据中特定字符串在多列中出现的频率
- swift - 如何从 Locale 获取本地化代码?
- kotlin - Kotlin 中出现意外标记(使用 ';' 分隔同一行上的表达式)错误
- css - 如何在 React JS 中使用 Google Fonts API?
- javascript - YouTube Data API Insert 方法缺少什么参数
- c++ - 找不到 C++ CodeBlocks 和 wxWidgets 文件?
- log4j - log4j2.8.2.jar 是否适用于 JDK 1.7。如何找到 jar 文件支持的 jdk 版本?
- deep-learning - 我可以对以下图像使用哪些异常检测算法(监督或非监督)?
- python - 气流中的 ImportError:没有名为 acme.operators.dwh_operators 的模块