使用HTTP Basic Auth保护API

时间:2014-03-14 14:39:10

标签: node.js api express basic-authentication stripe-payments

我正在研究HTTP Basic Auth以保护我的Nodejs API(也使用SSL)。

我想知道Basic Auth是否需要用户名和密码,因为我只想使用一个用作用户名的秘密API密钥。我读过的资源似乎表明两者都是必需的,但Stripe的文档似乎表明只需用户名就足够了:

https://stripe.com/docs/api#authentication

" 通过HTTP Basic Auth对API进行身份验证。提供您的API密钥作为基本身份验证用户名。您无需提供密码"

2 个答案:

答案 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);