我想知道如何在不需要用户的情况下实现一个简单的API身份验证令牌?我只想要一个令牌,当我调用我的API时,我可以通过将它作为参数添加来进行身份验证。
目前Google上的所有例子似乎都是为了满足我的需求而过度设计的。我有一些数据存储在MongoDB中,我只是像这样提供这些数据:
app.get("/", (req, res) => {
Car.find((err, cars) => {
if(err){
throw err;
}
res.json({"cars": cars});
});
});
是否可以添加一些简单的中间件来检查我的环境文件中名为api_token
的元素。然后检查我的环境文件中的api_token
是否与作为URL查询传递的参数相匹配。
有没有办法做到这一点?我知道你不能在GET
路由上使用URL查询,所以我不确定这是如何工作的。
发布于 2018-06-04 07:01:08
请记住,令牌至少负责两个API安全强制事项:身份验证和授权。您不需要对用户进行身份验证,但需要确保您收到的令牌是一个令牌,而不是“头”。
如果你使用静态令牌,或者其他任何东西,当我第一次得到你的令牌时,你的安全性就会下降。您至少需要指定此令牌何时失效,以及它是否为基于某种随机分配的有效令牌。您不能检查它是否存在,您需要检查它是否有效。
Javascript具有令人惊叹的约定背景,只要有机会,就遵循约定。它看起来更容易实现一个基于JWT的。
只需遵循以下内容:https://github.com/auth0/node-jsonwebtoken
并按照您的意愿在您的中间件中实现它。
像这样很容易/
jwt.sign({ exp: Math.floor(Date.now() / 1000) + (60 * 60), data: 'foobar' }, 'secret')
;
jwt.verify(token, 'shhhhh', function(err, decoded) { console.log(decoded.foo) // bar });
您可以随时通过使用"Web HEADER“并将其称为"TOKEN”来重做这些概念。但正如我所说的,它是一个"Web Header“,而不是"WEB TOKEN”。
https://stackoverflow.com/questions/50668915
复制相似问题