【问题标题】:How to generate, store and use Access Tokens in Node.js/Express?如何在 Node.js/Express 中生成、存储和使用访问令牌?
【发布时间】:2019-01-31 04:54:59
【问题描述】:

我是使用 Nodejs/Express 进行后端开发的新手,我正在创建一个 API,注册用户将能够在其中使用唯一的访问令牌向它发出请求。

我已经在使用 JWT(JSON Web 令牌)进行用户身份验证,在阅读了很多关于 JWT 的教程后,我没有找到任何解释是否可以使用 JWT 作为访问令牌(而不是作为身份验证令牌)或者是否有其他解决方案可以生成这种令牌。

所以,基本上我有一些关于如何生成和使用访问令牌的问题:

  1. 我可以使用 JWT 作为访问令牌吗?安全吗?还有其他更常用的解决方案吗?
  2. 我应该如何存储访问令牌?我可以将用户模型保存在数据库中,这样当我收到请求时,我只需比较它们是否相等?
  3. 在发出请求时,我应该使用 HTTP 授权标头来传递我的令牌还是最好在 URL 中传递它(类似于 Google Maps API:https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap)?

【问题讨论】:

    标签: node.js express


    【解决方案1】:

    所以这是一个相当广泛的问题,因为它实际上取决于您的应用和您想要拥有的安全性。

    如果您已经在为登录用户使用 JWT 令牌并确保他们经过身份验证,那就太好了。

    现在有很多方法可以确保用户以安全的方式进行身份验证。

    您可以在 JWT 中设置一个过期的密钥,因此它将被限制为 1 小时、2 小时、一周等等。

    如果您希望用户只能登录一次,则需要更深入地了解您管理令牌的方式。

    至于用户应该在头部或 GET 参数中传递 JWT 令牌的位置。所以在安全方面它是相似的,两者都是可访问的。但是当你把jwt放在url中时,url长度是有限制的(我认为是1024个字符)

    对于您关于访问令牌的具体问题,不确定您打算如何使用它们。

    但如果只是为了提供其他服务来对您的 api 执行操作,那么最好将这些 access_tokens 存储在本地,这样如果您想使密钥无效,您可以轻松地做到这一点。

    【讨论】:

      猜你喜欢
      • 2021-10-29
      • 2021-10-07
      • 1970-01-01
      • 1970-01-01
      • 2012-02-01
      • 1970-01-01
      • 2013-01-10
      • 2021-04-07
      • 2020-09-28
      相关资源
      最近更新 更多