我正在开发一个聊天应用程序,在用户登录后, 我将完整的用户信息存储在本地存储中,如下所示:

enter image description here

我也在使用JWT来授权用户.

那么,在本地存储中只存储JWT会更好吗? 并使用JWT从后端检索用户信息? 对这类事情的最佳解决方案是什么?

这是存储用户信息的好方法吗?还是应该使用其他方法,如Cookie?

目前我已经实现了将完整的userInfo存储到本地存储,但我认为这不是一个好做法.

因此,您的意见在这里非常重要.

推荐答案

It's quite common to store the JWToken in a cookie and even send said cookie to the server in requests (instead of adding the auth header).
Using a secure cookie (HttpOnly, SameSite=strict, secure) is more secure than localStorage, while there is always risks with storing credentials on the client.

当涉及到用户信息时,如果您需要的信息不是太多,那么其中一些实际上可以作为自定义声明存储在JWT中.这样,您不需要从数据库获取"基本数据",而只需在解析(和验证)后从JWT访问它.

Javascript相关问答推荐

检测内部/部分组件内部的路由更改(Nuxt 2.14中的VueRoute 3)

验证嵌套 colored颜色 代码的结果

使用Astro和React的动态API

Toast函数找不到其dis

如何制作删除按钮以从列表中删除该项目所属的项目?

如何访问react路由v6加载器函数中的查询参数/搜索参数

成功完成Reducers后不更新状态

如果Arrow函数返回函数,而不是为useEffect返回NULL,则会出现错误

使用原型判断对象是否为类的实例

JS:XML insertBefore插入元素

在HTML语言中调用外部JavaScript文件中的函数

确保函数签名中的类型安全:匹配值

在开发期间,Web浏览器如何运行&qot;.jsx&qot;文件?

如果一个字符串前面有点、空格或无字符串,后面有空格、连字符或无字符串,则匹配正则表达式

如果没有页面重新加载Angular ,innerHTML属性绑定不会更新

Node.js API-queryAll()中的MarkLogic数据移动

在渲染turbo流之后滚动到元素

使用Reaction窗体挂钩注册日历组件

MongoDB中的嵌套搜索

Clip-Path在网页浏览器(Mozilla、Edge、Chrome)上不能正常工作,但在预览版Visual Code Studio HTML、CSS、JS上却能很好地工作