python - 同时从移动设备和 Web 刷新 JWT 令牌的最佳实践
问题描述
我们正在构建一个客户应用程序。为此,我们正在使用会计软件 (ZOHO)。项目将从会计软件中提取,并使用 API 直接在会计软件上生成账单。API 使用 JWT 进行身份验证。为每个用户生成 JWT 令牌是一个“用户同意页面”,它应该从 Web 浏览器手动批准。因此,对于我们不会注册为用户的每个客户,我们计划将它们创建为客户。
我们现在真正计划做的是创建一个 JWT 令牌对(在手动批准后)并将其用于所有客户的所有 API 调用。我的第一个问题是,这会是一个好方法吗?
第二个问题,令牌的有效期为 1 小时。之后,我们应该使用刷新令牌来生成新令牌。我们如何在网络和移动设备上有效地处理这个问题(网络和移动设备上的客户同时使用相同的令牌进行 API 调用,令牌更改应该反映在所有客户端设备上)?这样做是个好主意吗?
解决方案
在这种情况下,您可以在 Zoho Books 中为基于服务器的应用程序创建一个连接,从而使用 OAuth 对 API 调用进行身份验证。当您设置此集成时,通过 API 进行的通信将仅在 Zoho Books 和您的第三方应用程序之间进行,而不是在 Zoho Books 和您的客户之间直接进行。因此,您可以最终为您的客户验证用户界面。
当您最初构建 API 集成时,您将创建一个刷新令牌。这可以在您的脚本中进行硬编码,并设置为每小时从中生成访问令牌。请注意,必须为基于 Web 和基于移动的应用程序分别生成刷新令牌和访问令牌。这是我们的帮助资源供您参考。您可以存储访问令牌和到期时间,并在使用访问令牌之前验证到期时间。如果它已过期,则生成一个新的访问令牌。请格外小心以确保不暴露刷新令牌。
我希望这有帮助。如果您有进一步的疑问,请随时与我们联系。
推荐阅读
- actions-on-google - “您正在测试您在项目中创建的操作:[[另一个项目]]”
- java - Java接口覆盖方法
- javascript - Django-CSP - AJAX 请求与 CSP 阻止的 vanilla JS
- java - HTTP 不重定向到 HTTPS (SpringBoot)
- pdf - 从 GIF 文件创建时如何压缩 PDF?
- python - 使用graphene-django时如何将Relay的分页功能与django-filter中的filterset_class一起使用
- swiftui - 如何在 SwiftUI 中制作动态 PageViewController?
- java - 通过 Firebase ValueEventListner 更新局部变量并在我的应用程序中使用它,并避免在 android studio JAVA 中获取 null 值
- excel - 如何在 Excel 中对具有重复值的标题进行排名?
- angular - 角度路由错误 - TypeError:无法分配给只读属性“_futureSnapshot”