我一直在拼命寻找一种简单的方法来保护我的 API,但仍然没有找到一种有效的方法。与许多 RESTful API 不同,我的 API 不需要用户登录、过期令牌或其他复杂(尽管非常安全)的身份验证方法,这使得大多数教程无法使用。
我唯一的要求是在一条路由上将记录记录到我的数据库的 POST 请求应该受到保护,而访问同一路由上的记录的 GET 请求应该不受保护。记录记录的客户端是受信任的,我会私下提供他们的凭据。
我在这里尝试过使用这种基本的身份验证方法:
var basicAuth = require('basic-auth');
var auth = function (req, res, next) {
function unauthorized(res) {
res.set('WWW-Authenticate', 'Basic realm=Authorization Required');
return res.send(401);
};
var user = basicAuth(req);
if (!user || !user.name || !user.pass) {
return unauthorized(res);
};
if (user.name === 'foo' && user.pass === 'bar') {
return next();
} else {
return unauthorized(res);
};
};
但是当我使用错误的用户名和密码时,POST 请求仍然有效。
我真的不知道该寻找什么了,因为我认为这样的基本身份验证会起作用。
编辑:在我忽略了 app.post 之后更改了几件事后,设法让它工作。