基于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的一些信息。
- 用户login页面刷新不适用于Passport js
- 如何处理asynchronous。 findOrCreate护照和mongoose的方法
- 在passport.js或session中的某处添加用户对象中的额外信息
- validationcaptcha以及passport.js
- 用户和来宾两个不同的模板? 或者dynamic改变视图使用客户端variables?
- 使用中间件使用ExpressJS调用身份validationAPI
- 连接到Heroku PostgreSQL数据库时validation错误
- 由于连接不再使用parseCookie方法,我们如何使用express来获取会话数据?
- 将令牌传递给我的Angular 4应用程序的优雅方式是什么?