原理
访问需要HTTP Basic Authentication认证的资源的各种语言的实现
示例
使用node express和http-auth实现。
$ npm install express --save
$ npm install http-auth --save
$ touch app.js
$ touch users.htpasswd
目录结构如下:
app.js内容:
// Authentication module.
var auth = require('http-auth');
var basic = auth.basic({
realm: "Simon Area.",
file: __dirname + "/users.htpasswd"
});
// Application setup.
var express = require('express');
var app = express();
app.use(auth.connect(basic));
// Setup route.
app.get('/', function(req, res) {
res.send("Hello from express - " + req.user + "!");
});
app.get('/test', function(req, res) {
res.send("Hi - " + req.user + "! This is the test page");
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
users.htpasswd内容:
letian:123
运行:
$ node app.js
浏览器打开http://127.0.0.1:3000/
会提示输入密码,我们看一下HTTP信息:
输入密码:
再次查看HTTP信息:
访问http://127.0.0.1:3000/test
不需要输入密码了:
除非浏览器记住了密码,重启浏览器后要重新输入密码。