【发布时间】:2016-12-08 12:41:42
【问题描述】:
我正在使用nodejs,表达 将调用我的 api 的第三方将使用 http://{username}:{password}@yourdomain.com/
格式的基本身份验证我试过了
var auth = require('basic-auth')
app.use(function(req, res, next) {
var credentials = auth(req)
if (req.headers.authorization) {
console.log("found headers");
}
}
但这仅适用于在标头中传递基本身份验证的情况。
我似乎无法从 URL 中获取用户名和密码(这是该外部方可以调用我的 api 的唯一方式)
然后我按照建议尝试使用 url
这就是我现在在 POST 时看到的内容
http://myusername:mypassword@localhost:4050/api/callback
var express = require('express');
var http = require('http');
var url = require('url');
var app = express();
app.use(function(req, res, next) {
console.log("req.protocol=",req.protocol);
console.log("req.get('host')=",req.get('host'));
console.log("req.originalUrl=",req.originalUrl);
}
http.createServer(app).listen(config.port, function () {
console.log("HTTP BandWidth listening on port " + config.port);
});
我的控制台看起来像
req.protocol=http
req.get('host')= localhost:4050
req.originalUrl=/api/callback
如果我转储整个 req obj,我看不到 myusername 或 mypassword
我一定遗漏了一些明显的东西
谢谢 兰迪
【问题讨论】: