我正在迁移我的旧ASP。asp.net Web Forms项目。. NET Core Web API和前端Angular。在我的旧应用程序中存储用户信息实例及其值(如分配的组、权限和其他用户信息)。我要使用JWT我不能在JWT存储所有信息,所以我应该继续会话在我的asp.net核心应用程序或检索此信息从数据库中的每个请求?
在现代应用程序开发中是否有其他可用的最佳实践?
根据需要有多个选项:
- 角缓存。如果数据不敏感,可以使用rxjs observable在应用程序端缓存一些数据。存储在浏览器上的一些数据没有问题。由于您来自一个完整的回发应用程序,因此SPA缓存在大多数情况下相当于旧的
Session
对象。 - 根据实现,您可能也需要在服务器端使用一些缓存。由于如上所述,您将有多个服务器,因此我建议只缓存查找等数据,而不缓存与用户相关的数据。如果你在服务器和会话中实现粘性(不推荐),这仍然是一个选项。
- 分布式缓存。你可能听说过Redis之类的?这也是将缓存数据存储到所有服务器实例都可以访问的第三个服务的选项。
这一切都归结为复杂性和速度。如果查询足够简单和快速,那么将它们存储在任何缓存中可能都是无用的。