首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Simple Express JS API令牌

Simple Express JS API令牌
EN

Stack Overflow用户
提问于 2018-06-04 01:06:28
回答 1查看 250关注 0票数 0

我想知道如何在不需要用户的情况下实现一个简单的API身份验证令牌?我只想要一个令牌,当我调用我的API时,我可以通过将它作为参数添加来进行身份验证。

目前Google上的所有例子似乎都是为了满足我的需求而过度设计的。我有一些数据存储在MongoDB中,我只是像这样提供这些数据:

代码语言:javascript
复制
  app.get("/", (req, res) => {
    Car.find((err, cars) => {
      if(err){
        throw err;
      }
      res.json({"cars": cars});
    });
  });

是否可以添加一些简单的中间件来检查我的环境文件中名为api_token的元素。然后检查我的环境文件中的api_token是否与作为URL查询传递的参数相匹配。

有没有办法做到这一点?我知道你不能在GET路由上使用URL查询,所以我不确定这是如何工作的。

EN

回答 1

Stack Overflow用户

发布于 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”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50668915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档