基于NodeJS的HTTP客户端:如何validation请求?
这是我必须做一个简单的GET请求的代码:
var options = { host: 'localhost', port: 8000, path: '/restricted' }; request = http.get(options, function(res){ var body = ""; res.on('data', function(data) { body += data; }); res.on('end', function() { console.log(body); }) res.on('error', function(e) { console.log("Got error: " + e.message); }); });
但是“/ restricted”这个path需要一个简单的基本HTTPauthentication。 我如何添加凭据进行身份validation? 在NodeJS手册中,我找不到与基本httpauthentication相关的任何东西。 提前致谢。
您需要将授权添加到像使用base64编码的标头之类的选项。 喜欢:
var options = { host: 'localhost', port: 8000, path: '/restricted', headers: { 'Authorization': 'Basic ' + new Buffer(uname + ':' + pword).toString('base64') } };
在较新的版本中,您也可以将auth参数(格式为username:password,无编码)添加到您的选项中:
var options = { host: 'localhost', port: 8000, path: '/restricted', auth: username + ':' + password }; request = http.get(options, function(res){ //... });
(注意:在v0.10.3上testing)
我build议使用请求模块,它支持广泛的function,包括HTTP基本authentication。
var username = 'username', password = 'password', url = 'http://' + username + ':' + password + '@some.server.com'; request({url: url}, function (error, response, body) { // Do more stuff with 'body' here });
以下是有关基本HTTP身份validation的一些信息。
- 路由器中的Hapijs会话
- Passport-SAML:读取用户信息
- rails和node.js与redis存储之间的共享authentication
- SPA(angular度)身份validation与OAuth2提供商的独立域上的API和身份validation服务器; Google,Facebook
- nodejs HTTP摘要authentication不起作用
- 具有“持久性标记”function的Node.js身份validation库
- firebase是否为每个admin.auth()。verifyIdToken(idToken)发出networking请求?
- 与节点的代理http请求
- AngularJS服务器会话和validation与nodeJS后端服务器