node.js - 如何使用 Node 通过摘要身份验证发布消息?

标签 node.js marklogic

我正在尝试使用 Node.js 将消息发布到具有摘要安全性的 MarkLogic 应用程序服务器。等效的curl请求工作正常:

curl -v -X POST --anyauth -u admin:admin --header "Content-Type:application/json" \
  -d '{"user-name":"joe", "password": "cool"}' http://localhost:8002/manage/v2/users

我尝试使用 NPM request module ,它表示它支持摘要请求。我能够成功执行 GET 请求。这是 POST 的一次尝试:

request(
  {
    'url': 'http://localhost:8000/manage/v2/users',
    'method': 'POST',
    'auth': {
      'user': 'admin',
      'password': 'admin',
      'sendImmediately': false
    },
    'followRedirect': true,
    'followAllRedirects': true,
    'json': true,
    'body': {'user-name':'joe', 'password': 'cool'}
  },
  function(error, response, body) {
    console.log('callback: ' + response.statusCode);
  }
);

这给我带来了 401。用户名和密码是正确的。我也尝试过这样的:

request
  .post(
    'http://localhost:8000/manage/v2/users', 
    {'user-name':'joe', 'password': 'cool'})
  .auth('admin', 'admin', false)
  .on('response', function(response) {
    console.log('response: ' + JSON.stringify(response));
  })
  .on('error', function(error) {
    console.log('error: ' + error);
  });

这让我得到了 302。我觉得我一定错过了一些简单的东西。

  • Node v0.10.31
  • MarkLogic 8.0-2

最佳答案

结果有一个简单的解决方案:curl 请求有效,因为我使用了 localhost:8002; Node 请求失败,因为我使用了 localhost:8000。呃。 302 重定向告诉我使用 8002,但我错过了。

关于node.js - 如何使用 Node 通过摘要身份验证发布消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30406369/

相关文章:

node.js - 无法安装 Node 12.8

node.js - CURL - 如何传递 OAUTH2 Pingfederate 身份验证的用户名和密码?

xpath - CTS 和 xPath 都需要吗?

marklogic - 使用 xdmp 锁定文档时出现问题 :lock-acquire() function

marklogic - 使用 mlcp 加载数据 - 命名空间问题

Node.js 和 Passport 对象没有方法 validPassword

javascript - 语法错误: Unexpected token return

xpath - Marklogic:Xpath使用移除处理指令标签

uri - 使用 MLCP 时转换默认 URI

javascript - 第一次尝试firebase云功能