是否存在解析基本身份验证的节点本机方式?
步骤将是:
不寻找Connect / Express框架解决方案。
我意识到手动操作是非常微不足道的,但如果没有重新发明轮子,有一个标准的方法来实现这一目标会很好。
答案 0 :(得分:0)
所以HTTP身份验证有一个令人困惑的事情。如果您的网址包含此https://user:password@example.com', that will parse just fine with
url.parse`:
url.parse('https://user:password@example.com')
{ protocol: 'https:',
slashes: true,
auth: 'user:password',
host: 'example.com',
port: null,
hostname: 'example.com',
hash: null,
search: null,
query: null,
pathname: '/',
path: '/',
href: 'https://user:password@example.com/' }
请注意,url.parse(theUrl).auth
不是url.parse(theUrl).query.auth
。
然而,这就是URL本身,只是那个字符串。如果您告诉HTTP库实际请求该URL,则凭据将转换为HTTP请求标头,就像主机,路径,端口等URL的其余部分都将转换为请求的详细信息并在HTTP请求标头和正文本身无法找到完整的URL,因为它遍布TCP和HTTP层。
要说明您需要查看请求标题,这是一个很长的路要走:req.headers.authorization
。 url.parse
查看一个简单的URL字符串,您在服务器上拥有的是一个实际的http.ClientRequest
实例。