gpt4 book ai didi

spring-boot - 在 Spring Boot 应用程序中缓存 OAuth2 token ?

转载 作者:行者123 更新时间:2023-12-04 11:36:41 25 4
gpt4 key购买 nike

我正在实现一个 Spring Boot 应用程序,其中的方法调用第三方 REST 端点。此 REST API 在 OAuth2 身份验证后即可访问。这就是为什么我从第三方检索 token (各种用户可以使用我的应用程序并恭敬地调用 REST 端点)并使用这些 token 进行授权以调用端点。但在当前的实现中,这发生在每次调用之前。这就是为什么我想请教如何缓存这些 token 以及这是否是一个好的做法? token 也会在 1 小时后过期。

最佳答案

您不应该在 Web 应用程序的后端缓存访问 token ,如果您可以将它们存储在客户端并随每个请求发送它们。
如果您无法将其存储在客户端(可能的情况是您的 API 正在与某些消息客户端(如 USSD、SMS 等)通信),则获取 OAuth 访问 token 的成本会很高,因为它需要一个 HTTP 请求才能 token 端点。这种情况是一个很好的例子,您可以尽可能缓存 token 。
如果您有多个实例,则可以使用 REDIS。
记住 : token 是敏感数据,因为它们授予对用户资源的访问权限。 (此外,与用户的密码不同,您不能只存储 token 的哈希值。)因此,保护​​ token 免遭泄露至关重要。您可以使用加密。请查看以下链接以获取更多详细信息:
https://auth0.com/docs/best-practices/token-best-practices .
https://github.com/auth0/express-openid-connect/blob/master/EXAMPLES.md#5-obtaining-and-storing-access-tokens-to-call-external-apis
https://docs.microsoft.com/en-us/azure/architecture/multitenant-identity/token-cache
根据 Auth0 token 最佳实践
储存和重复使用。
通过存储从授权服务器获取的访问 token ,减少扩展应用程序攻击面的不必要的往返,并优化计划 token 限制(如果适用)。与其请求新的 token ,不如在以后的调用中使用存储的 token ,直到它过期。如何存储 token 取决于应用程序的特性:典型的解决方案包括数据库(对于需要执行 API 调用而不管 session 是否存在的应用程序)和 HTTP session (对于事件窗口仅限于交互式 session 的应用程序) )。有关服务器端存储和 token 重用的示例,请参阅我们的 Github 存储库中的获取和存储访问 token 以调用外部 API

关于spring-boot - 在 Spring Boot 应用程序中缓存 OAuth2 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58119997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com