Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 修改代理请求的标头大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是IP限制纯客户端CORs演示应用程序,它与经过身份验证的第三方API交互.我有一个“中间件”服务器运行,我用它来代理从CORs应用程序到第三方API的请求,但我无法将基本身份验证凭据注入这些代理请求.

isAllowed = (req,res,next) -> # Do IP check here.

base64Encode = (unencoded) -> new Buffer(unencoded or '').toString 'base64'

app.all "/demoproxy/*",isAllowed,(req,res) ->

  req.url = "/" + req.url.split("/").slice(2).join("/")

  userPass = base64Encode "#{process.env.DEMO_USERNAME}:#{process.env.DEMO_password}"

   # This doesn't work.
   # res.setHeader 'Authorization',"Basic #{userPass}"

   # This doesn't work either.
   ###res.oldWriteHead = res.writeHead

   res.writeHead = (statusCode,headers) ->

     headers = { }
     headers['Authorization'] = "Basic #{userPass}"
     res.oldWriteHead statusCode,headers###

    proxy = new httpProxy.httpProxy
      target:
        host: 'remote-api.com'
        port: 80

    proxy.proxyrequest req,res

这样做的正确方法是什么?

解决方法

我想你想在这种情况下在请求(req)对象上设置授权头,而不是响应(res).如果remote-api.com需要进行身份验证,那么它需要知道您发送给它的请求.也许在进行proxy.proxyrequest请求之前尝试以下操作

req.headers["authorization"] = "Basic #{userPass}"

使用req对象没有setHeader函数,headers属性只是一个javascript对象/ map.希望有助于……

大佬总结

以上是大佬教程为你收集整理的node.js – 修改代理请求的标头全部内容,希望文章能够帮你解决node.js – 修改代理请求的标头所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。