node.js - 在http请求库中发送参数

标签 node.js express

所以这个问题与一个流行的 Express 库(我认为)有关,名为 request https://github.com/request/request

我一直在滚动浏览它的 README.md,我要么是盲目的,要么是我很难找到在 GET 请求中发送参数的方法。 我正在使用的 api 服务告诉我

"send a GET request to the /1/login endpoint with username 
and password as URL-encoded parameters:"

我认为我不应该使用流、表单、http 身份验证、自定义 http header 、OAuth 签名、代理、Unix 域套接字、TLS/SSL 协议(protocol)。我是否对其进行编码并将其作为查询参数发送?这似乎不安全,因为我正在使用该服务来登录用户。 祈祷这不是一个愚蠢的问题

最佳答案

要使用请求库发送查询字符串参数,请使用qs选项:

request({
  method: 'GET',
  uri:'https://google.com/search',
  qs: {
    q: 'search query',
  }
}, function(err, res, body){
  console.log(body)
})

您对凭据保持谨慎是正确的。 IMO 对于大多数应用程序,您可以在整个站点中使用 HTTPS,将用户名/密码作为表单正文或 JSON 进行 POST,并依靠 TLS 来保护传输中的数据。 混合使用 HTTP 和 HTTPS 是有风险的,例如包含 https://domain.com/login 链接的 HTTP 页面容易受到“sslstrip”攻击(攻击者毒害 http 代码,用 http://attacker.com/?spoof=https://domain.com/login 替换链接。)

我建议不要在查询字符串中使用用户名/密码发出(在浏览器中)GET 请求,因为它们会显示在地址栏中,并且有人可以监视用户。

关于node.js - 在http请求库中发送参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31930098/

相关文章:

jquery - 加载非 main 的 npm 模块的最佳实践

node.js - 上传文件时: CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource

javascript - Express - 如何在路由文件中使用 io.socket.emit?

javascript - 未处理的PromiseRejection警告: ValidationError

node.js - Socket.io 无法加载资源客户端,可在本地主机上运行

javascript - evolution.voxeo.com 中的 voiceXML,出现奇怪的错误

node.js - react : Run on production without build

javascript - 访问服务器端 javascript 变量以使用客户端 javascript 进行操作

以 Mongodb 作为后端的 Android App 和 Node.js (express framework)

node.js - 如何在redis\lua中定义函数?