在客户端应用程序上使用jwt处理会话

时间:2019-05-03 19:39:50

标签: node.js reactjs api session jwt

我正在尝试为客户端应用程序设置rest api。该应用程序将使用react编写,并具有节点/表达后端。我正在使用json网络令牌来验证用户的受保护路由。我对用jwt处理用户会话的最佳方法感到有些困惑,即使它成为用户离开并返回或刷新页面时仍保持登录状态。

这是我当前正在执行的。当用户登录时,我创建一个访问令牌和一个刷新令牌。我将两个令牌都发送给客户端,并将其存储在本地存储中。为每个受保护的路由检查访问令牌。

我的问题是,当访问令牌过期时,应如何处理?我的理解是访问令牌的寿命应该很短。但我也不希望用户每30分钟或一个小时或任何其他时间重新登录。

我当前的解决方案是检查访问令牌,如果令牌已过期,则向客户端发送401。然后使用刷新令牌返回授权,创建一个新的访问令牌,然后将其返回给客户端,并使用新的访问令牌再次尝试受保护的路由。这种方法看起来很乏味,需要花费很多往返时间,对于生产就绪的代码来说,它并不是一个好的解决方案。

我还考虑过在登录时与令牌一起发送访问令牌到期。然后在将其发送到访问路由之前检查其是否过期。如果已过期,则发送刷新令牌并生成一个新的访问令牌。我倾向于这种解决方案,但不确定这种方法的安全性。

是否存在行业标准?目前,我不确定应如何实施。是否有人对此有经验,可以帮助我制定可靠的策略?

我们将不胜感激。

0 个答案:

没有答案