在NodeJS应用中为远程API存储身份验证令牌的最佳方法是什么?

时间:2019-12-03 03:02:22

标签: node.js rest api authentication state

我正在编写一个在服务器上运行并按计划查询远程API的NodeJS应用。该API需要身份验证,并为我提供了有效期为几个小时的令牌。

存储和重用此令牌并仅在令牌过期时重新进行身份验证的最佳方法是什么?

这是我编写的第一个Node应用程序,因此我不确定确切如何提出问题。是否有一个公共库可以为我处理?

如果没有,并且我必须编写自己的模块,那么存储凭证的可接受方法是什么?我应该使用全局变量,像Redux这样的状态存储,还是超出正常范围?

1 个答案:

答案 0 :(得分:1)

嗯,这实际上取决于代码的上下文。如果您的服务器只有这些令牌之一,则只需将其保存在模块级Javascript变量中,即可从那里使用它。

如果有多个令牌,每个令牌都与进入服务器的其他一些请求相关联,则您需要找到某种方法将正确的令牌与正确的请求相关联。有很多方法可以做到这一点,但是哪种方法最合适取决于您要与每个令牌关联的内容。

对于一个或几个令牌,没有理由将其放入某些数据存储中。一个Javascript变量就可以了。我可以想到使用实际数据存储的唯一原因是,如果您需要这些令牌来保持服务器重启。在这种情况下,您只需将JSON读写到一个文件中,然后在服务器重启时就可以读取该文件。

  

如果没有,并且我必须编写自己的模块,那么存储凭证的可接受方法是什么?我应该使用全局变量吗?

不。不是全局变量。模块级别的变量可能有意义。

  

Redux之类的状态存储

我看不出有什么理由要这样做。