加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在AngularJS应用程序中保存会话数据?

发布时间:2020-12-17 08:51:23 所属栏目:安全 来源:网络整理
导读:我有这个用AngularJs编写的Web应用程序,它使用cookie来验证REST API中的请求. 用户登录后,会收到cookie并将其保存在浏览器中,所有后续请求都会将cookie发送到服务器.有一个’User’服务/对象可以保存isLoggedIn和用户名值(用于UI显示/流程).现在,如果我刷新
我有这个用AngularJs编写的Web应用程序,它使用cookie来验证REST API中的请求.

用户登录后,会收到cookie并将其保存在浏览器中,所有后续请求都会将cookie发送到服务器.有一个’User’服务/对象可以保存isLoggedIn和用户名值(用于UI显示/流程).现在,如果我刷新“索引”页面,应用程序将重新启动.这意味着我的“用户”对象将被清除.我可以检查cookie的存在,如果存在,我可以将User.isLoggeIn重新设置为true并从那里开始,但我仍然需要获取用户名,id等.所以,我的问题是:应该我在API中创建了某种“ping”端点来验证cookie是否有效?如果是这样,API将向我发回用户ID和用户名…或者我应该将用户数据保存在LocalStorage(或某些类似的跨浏览器的东西)中,并假设如果cookie存在则记录用户?将自动验证对需要身份验证的页面的任何其他后续请求.所以,这个问题实际上只适用于用户刷新索引页面的场景 – 因此,重新启动Web应用程序.我想知道用户数据,因为我想显示“用户主页”而不是“公共主页”.

你怎么看?

您应该依赖服务器.在服务器上创建类似GetCurrentUser方法的东西.如果用户已登录,则返回用户的所有属性.

您甚至应该使用此服务器api在身份验证完成后获取用户数据.因此,身份验证成为首先对用户进行身份验证的两步流程,成功后,将再次调用服务器以获取当前用户的详细信息.

使用客户端本地存储器并不理想,因为在注销或会话到期时清理登录用户需要进行大量的簿记.

来自服务器的cookie也将具有到期时间,并且仅基于本地存储上存在的cookie做出决定可能不是最佳方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读