我正在使用Hubot,并定义了环境变量EXPRESS_USER和EXPRESS_PASSWORD来启用基本身份验证。Hubot使用express,基本上它是
setupExpress: ->
    user    = process.env.EXPRESS_USER
    pass    = process.env.EXPRESS_PASSWORD
    stat    = process.env.EXPRESS_STATIC
    express = require 'express'
    app = express()
    app.use (req, res, next) =>
      res.setHeader "X-Powered-By", "hubot/#{@name}"
      next()
    app.use express.basicAuth user, pass if user and pass
    app.use express.query()
    app.use express.bodyParser()
    app.use express.static stat if stat`我想在一个不需要基本身份验证的脚本中公开一个HTTP命令。但是,我无法更改正在初始化的Hubot中的代码
robot.router.get '/some-anonymous-path', (req, res) ->
  console.log 'Should be here without need to authenticate有没有人知道有没有可能用expressjs来实现。
提前感谢
布鲁诺
发布于 2015-03-26 02:22:52
把nginx放在你的Hubot前面怎么样?然后,您还可以添加SSL,只允许访问特定路径,重写urls,甚至提供由hubot脚本创建的静态内容。一个简单的nginx.conf块示例:
upstream hubot {
  server localhost:8080;
}
server {
  listen 80;
  satisfy any;
  allow 127.0.0.1;
  deny all;
  location ~ ^/(public|obscured) {
    allow all;
    proxy_pass http://hubot;
  }
  location ~ ^/(static) {
    auth_basic "Restricted";
    auth_basic_user_file htpasswd;
    root /www;
  }
  location ~ {
    auth_basic "Restricted";
    auth_basic_user_file htpasswd;
    proxy_pass http://hubot;
  }
}然后在/etc/nginx/htpasswd和你的hubot初始化脚本中设置BIND_ADDRESS=localhost (默认绑定是0.0.0.0)中的一个htpasswd对,你就可以开始比赛了。
https://stackoverflow.com/questions/24392180
复制相似问题