同时从移动设备和 Web 刷新 JWT 令牌的最佳实践
Posted
技术标签:
【中文标题】同时从移动设备和 Web 刷新 JWT 令牌的最佳实践【英文标题】:Best practice of refreshing JWT tokens from mobile and web simultaneously 【发布时间】:2021-10-07 12:02:35 【问题描述】:我们正在构建一个客户应用程序。为此,我们正在使用会计软件 (ZOHO)。项目将从会计软件中提取,并使用 API 直接在会计软件上生成账单。 API 使用 JWT 进行身份验证。要为每个用户生成 JWT 令牌,则需要一个“用户同意页面”,应从 Web 浏览器手动批准。因此,对于我们不会注册为用户的每个客户,我们计划将他们创建为客户。
我们现在真正计划做的是创建一个 JWT 令牌对(在手动批准后)并将其用于所有客户的所有 API 调用。我首先担心的是,这会是一个好方法吗?
第二个问题,令牌的有效期为 1 小时。之后,我们应该使用刷新令牌来生成新令牌。我们如何在网络和移动设备上有效地处理这个问题(网络和移动设备上的客户同时使用相同的令牌进行 API 调用,令牌更改应该反映在所有客户端设备上)?这样做是个好主意吗?
【问题讨论】:
【参考方案1】:在这种情况下,您可以在 Zoho Books 中为基于服务器的应用程序创建一个连接,从而使用 OAuth 对 API 调用进行身份验证。当您设置此集成时,通过 API 进行的通信将仅在 Zoho Books 和您的第三方应用程序之间进行,而不是在 Zoho Books 和您的客户之间直接进行。因此,您可以在最后为您的客户验证用户界面。
当您最初构建 API 集成时,您将创建一个刷新令牌。这可以在您的脚本中进行硬编码,并设置为每小时从中生成访问令牌。请注意,必须为基于 Web 和基于移动的应用程序分别生成刷新令牌和访问令牌。这是我们的帮助资源供您参考。您可以存储访问令牌和到期时间,并在使用访问令牌之前验证到期时间。如果它已过期,则生成一个新的访问令牌。请格外小心,以确保不会暴露刷新令牌。
我希望这会有所帮助。如果您有任何疑问,请随时与我们联系。
【讨论】:
“这是我们的帮助资源”——在哪里?以上是关于同时从移动设备和 Web 刷新 JWT 令牌的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章