微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在节点中设置分布式缓存

如何解决在节点中设置分布式缓存

我有一个应用程序,我必须在其中获取用户列表。用于获取列表的 API 需要一个身份验证令牌,该令牌每 1 小时到期一次。因此,为了获取用户,我首先需要进行令牌调用并发布我需要进行获取调用的信息。如何缓存在 Node 中有效期为 1 小时的令牌?我们有多个 pod,所以我需要一个分布式缓存来确保 pod 中的令牌值相同。是否可以在 node 中实现它以及如何实现它?任何类型的资源/教程都会非常有帮助。

解决方法

因此您正在调用外部服务,但您需要先获得一个有效的令牌。

看看现有软件如何解决它。例如,微软的 Graph API SDK(也使用了不记名令牌认证): https://github.com/microsoftgraph/msgraph-sdk-javascript/blob/dev/docs/CustomAuthenticationProvider.md

您注入一个“身份验证提供程序”,在必要时对远程服务进行身份验证和检索令牌。接下来,当您需要调用 API 时,客户端会检查它是否在内存中具有令牌。如果没有(或者它已过期),它会向身份验证提供者请求一个新令牌。因此,内存缓存层位于客户端对象中。

另一种方法是内存缓存,但是在Authentication Provider层——那么,客户端每次都可以盲目地向它索要一个令牌,并让提供者决定是使用当前的令牌还是索取一个新的令牌。

我不会将令牌放在网络可访问的缓存中 - 它为泄漏令牌打开了一个潜在的安全漏洞,并且似乎没有任何用途。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。