到期时提供新的JWT

问题描述

我的客户是一家拥有我的Web服务器凭据的公司,我希望他让他的最终用户使用我为其提供的JWT调用我的API。这是流程:

  1. 最终用户从客户的网络服务器上请求一个网页
  2. 如果最终用户的Web服务器没有JWT,则客户的服务器使用其凭据调用我的API,而我给他的新JWT的有效期为1小时
  3. 客户将JWT发回给最终用户,并将其存储在localstorage / cookies中
  4. 最终用户可以使用他的JWT调用我的API
  5. 当最终用户自我的API获取过期的状态代码401时,他再次调用客户的Web服务器到特定的端点,以获取一个新的JWT,该API的我的API的有效期为1小时,然后他可以调用再次使用API​​。

我希望您对此流程有意见,并了解它是否合理。 有没有办法改善这种流程?也许最终用户应该寻找他的令牌,如果令牌已过期,以避免调用我的API并跳过该部分以缩短往返时间?

解决方法

这里要遵循的概念是刷新令牌。

在OAuth流程中,您可以使用刷新令牌,当现有的身份验证令牌过期时,刷新令牌可用于获取新令牌。

有关如何使用它的更多详细信息,您可以参考OAuth article here