Node.js 使用HTTP基本身份验证保护API

Node.js 使用HTTP基本身份验证保护API,node.js,api,express,basic-authentication,stripe-payments,Node.js,Api,Express,Basic Authentication,Stripe Payments,我正在研究HTTP Basic Auth以保护我的Nodejs API(也使用SSL) 我想知道基本身份验证是否需要用户名和密码,因为我只想使用一个用作用户名的秘密API密钥。我读过的参考资料似乎表明这两个都是必需的,但Stripe的文档似乎表明,只要一个用户名就足够了: “通过HTTP Basic Auth对API进行身份验证。请提供API密钥作为基本身份验证用户名。您不需要提供密码”您可以使用express中的basicAuth中间件来执行此操作。只需将用户名设置为API密钥,将密码设置为

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

我想知道基本身份验证是否需要用户名和密码,因为我只想使用一个用作用户名的秘密API密钥。我读过的参考资料似乎表明这两个都是必需的,但Stripe的文档似乎表明,只要一个用户名就足够了:


“通过HTTP Basic Auth对API进行身份验证。请提供API密钥作为基本身份验证用户名。您不需要提供密码”

您可以使用express中的basicAuth中间件来执行此操作。只需将用户名设置为API密钥,将密码设置为“”(空字符串,而不是双引号)。

您还可以使用模块进行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);

作为提醒,基本身份验证是完全不安全的,除非您使用的是HTTPS。谢谢-我在第一行中提到了SSL,对不起,我的眼睛正好越过了它。很好的工作。谢谢-虽然不确定这个中间件在Express4.x中是否可用。可能也能用Passports做同样的事情,虽然Passport也很棒。请参阅本页底部的自定义回调。