【问题标题】:Hubot Basic Authentication REST CallHubot 基本身份验证 REST 调用
【发布时间】:2016-05-04 06:06:40
【问题描述】:

对于 Hubot,我正在尝试通过 JIRA REST api 访问特定问题。

url = http://myserver.com/jira/rest/api/2/search?jql=status="open"+AND+assignee=null
robot.http(url).get() (err, res, body) ->
   # some code

Hubot 无法访问服务器。代理都设置正确。 REST api登录后通过浏览器按预期工作。

因此我需要指定身份验证。

到目前为止我尝试了什么(简单的基本身份验证):

robot.http(url).auth('user', 'pass'). ...

robot.http(url).header('Authentication', 'user:password'). ...

robot.http('http://user:password@someurl'). ...

Hubot 一直告诉我找不到服务器。 如何正确通过http认证?

【问题讨论】:

    标签: rest http authentication jira hubot


    【解决方案1】:

    这是来自hubot-confluence plugin 的sn-p 它应该与使用Jira 进行身份验证相同。这是基本的访问身份验证。您可以查找 btoa 方法,但所做的是将二进制转换为 base64 编码的 ascii。据我所知,已经有很多脚本可以通过 hubot 连接到 Jira。

    make_headers = ->
      user = nconf.get("HUBOT_CONFLUENCE_USER")
      password = nconf.get("HUBOT_CONFLUENCE_PASSWORD")
      auth = btoa("#{user}:#{password}")
    
      ret =
        Accept: "application/json"
        Authorization: "Basic #{auth}"
    

    你已经正确地进行了 robots.http 调用

    headers = make_headers()
    robot.http(url)
    .headers(headers)
    .get() (error, response, body) ->
    

    【讨论】:

      【解决方案2】:

      您需要以我认为正确的格式获得基本的身份验证凭据。

      user = process.env.DNSIMPLE_USERNAME
      pass = process.env.DNSIMPLE_PASSWORD
      auth = 'Basic ' + new Buffer(user + ':' + pass).toString('base64')
      

      那么你需要将auth变量传入

      robot.http(url)
        .headers(Authorization: auth, Accept: 'application/json')
        .get() (err, res, body) ->
          #some code
      

      【讨论】:

        猜你喜欢
        • 2016-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-26
        • 2015-11-12
        • 1970-01-01
        • 2013-06-06
        • 2016-06-08
        相关资源
        最近更新 更多