我的应用程序必须使用用户api key & api secret
在配置文件/管理中手动提供的外部服务获取数据。
我想防止大量检索这些必要的键查询到数据库并将其保留在其他地方(假设这些键不会太频繁地更新)。
从我的角度来看,它可以通过下一个选项来实现:
- 将
MemoryCache
提供程序与SlidingExpiration
一起使用; - 创建自定义
Claim
并将其追加到现有的Identity
声明集合中;
如果我错了,请纠正我,但如果我意识到正确 - 声明的信息是数据的一部分,用于前端<>后端交互的序列化/反序列化(我对此不太有信心,但假设它在cookie和令牌中使用)。
实际上,多个后台进程(例如消息队列使用者或计划作业)也需要这些键。
您介意让我知道以优化方式处理此类受保护和常用字段的正确方法吗?
提前谢谢你。
当您使用SignInManager
的登录方法之一登录时,它会在浏览器上设置一个带有访问令牌的 cookie。此 Cookie 包含索赔数据。因此,在后续授权请求中,您可以查询User.Claims
字段以访问必填字段,而无需访问数据存储。
现在,是否选择使用声明完全取决于您需要API密钥/机密的频率。声明是访问令牌的一部分。如果在每个请求上发送 API 密钥/机密是合理的,则声明是理想的选择。
更新:
与其在前端解密令牌,不如将它们与访问令牌一起发送到前端客户端。
如果您不知道IdentityServer4或OpenIddict,请查看它们。它可能有你需要的一切。