我应该将用户数据存储为声明还是存储在用户配置文件表中

本文关键字:用户 存储 配置文件 用户数 数据 我应该 声明 | 更新日期: 2023-09-27 17:56:55

我正在开发一个面向公众的系统,理想情况下,该系统将增长到大量流量。这都是 c# .net 的工作。

正在使用基于声明的标识,因此我目前正在使用用户声明表来存储用户数据,但随着用户群的增长,我觉得这将变得太慢而无法支持流量。我正在考虑可能创建一个用户配置文件表来水平存储非安全相关数据,而不是像在声明表中那样垂直存储,只将安全数据留在声明表中。

这是解决问题的合理方法吗?任何人都可以分享他们对此类场景的经验的一些见解吗?

更新

我的问题不是关于与用户身份一起传递的JWT令牌的大小。我的问题是关于严格使用"UserClaim"表以Claim形式存储所有用户的数据,而不是使用UserProfile或类似的表来存储某些东西,以及找到"此数据进入声明表与此数据进入配置文件表"的正确平衡。

我应该将用户数据存储为声明还是存储在用户配置文件表中

我建议只将数据保存在授权决策中使用的令牌中,而不是使用用户配置文件信息使令牌膨胀。

令牌有效的时间戳、令牌所针对的受众、用户名、用户的组和角色等。有关更多信息,请参阅此处。

将配置文件信息保留在令牌中将强制应用程序获取新令牌(如果该信息发生任何更改)。令牌通常在其生存期内缓存,以防止必须比需要更频繁地重新颁发令牌。