我正在研究HTTP Basic Auth以保护我的Nodejs API(也使用SSL)。
我想知道Basic Auth是否需要用户名和密码,因为我只想使用一个用作用户名的秘密API密钥。我读过的资源似乎表明两者都是必需的,但Stripe的文档似乎表明只需用户名就足够了:
https://stripe.com/docs/api#authentication
" 通过HTTP Basic Auth对API进行身份验证。提供您的API密钥作为基本身份验证用户名。您无需提供密码"
答案 0 :(得分:1)
您可以使用express中的basicAuth中间件来执行此操作http://expressjs.com/api.html#basicAuth。只需将用户名设置为API密钥,将密码设置为' ' (空字符串,不是双引号)。
答案 1 :(得分:0)
您还可以使用http-auth模块进行HTTP基本/摘要式身份验证。
// Authentication module.
var auth = require('http-auth');
var basic = auth.basic({
realm: "Simon Area.",
file: __dirname + "/../data/users.htpasswd" // gevorg:gpass, Sarah:testpass ...
});
// Creating new HTTP server.
http.createServer(basic, function(req, res) {
res.end("Welcome to private area - " + req.user + "!");
}).listen(1337);