我应该使用本地存储来存储用户数据吗

Posted

技术标签:

【中文标题】我应该使用本地存储来存储用户数据吗【英文标题】:Should I use local storage to store user data 【发布时间】:2021-04-17 09:52:45 【问题描述】:

用户通过身份验证后,我是否需要将用户数据存储在本地存储中。这样下次用户就不需要再次登录了。但这是我使用 JWT 身份验证的情况。我还需要将用户数据和令牌存储在本地存储中吗?因为我看过很多同时存储两者的教程,但是我看不到将两者都存储在本地存储中的实用程序。我们不能在用户回来时验证令牌并将用户数据存储在会话存储中吗?

【问题讨论】:

由于所问内容的一致性,我赞成这个问题。亚历克斯没有要求任何现成的代码或相关的东西。问题范围是关于身份验证层的良好做法和用户敏感数据的处理。 【参考方案1】:

当您使用 JWT 令牌时,您必须将它们存储在本地。对于 REST API(可能您将与 JWT 令牌一起使用),您必须在所有请求旁边发送 JWT 令牌。因为您的 USER API 在标头或帖子正文中等待 JWT 令牌。 JWT 令牌包含有关用户的信息以引用您的用户数据库,例如用户名,用户名。不要在客户端存储任何用户特定信息。一个引用(userid) 足以识别您服务器中的用户。

如果您使用 JWT 令牌,您必须以手动方式将它们存储在浏览器的本地存储中。但是您可以使用服务器设置的 cookie 来让用户登录。在这种情况下,浏览器会自动存储您的 cookie 并将它们与您的进一步请求一起发送到 Cookie 标头中。

【讨论】:

太棒了,谢谢。我想知道为什么这么多教程将用户数据存储在本地存储中。那么您认为在我需要任何用户数据时查询 API 会更好。

以上是关于我应该使用本地存储来存储用户数据吗的主要内容,如果未能解决你的问题,请参考以下文章

您可以使用 HTML5 本地存储来存储文件吗?如果没有,怎么办?

JavaScript-HTML5 使用本地存储登录,安全吗?

每当我发布新代码时如何从客户端清除本地存储

如何在 Swift 应用程序中保存本地数据?

从Firebase本地实时存储Room DB上的数据

存储用户数据 iOS