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

前端之家收集整理的这篇文章主要介绍了如何在AngularJS应用程序中保存会话数据?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个用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做出决定可能不是最佳方法.

猜你在找的Angularjs相关文章