请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Angular如何存储用户的状态信息

老师,使用angular打造app的时候,一般怎么保存登录信息或者说记住用户的状态,直接使用localStorage好像不是很安全的样子,有什么比较好的方式么?

正在回答

1回答

并非用户的所有信息都敏感,所以不敏感的存在 localstorage 没有什么问题。

对于单页应用来说,如果考虑安全性,如果在不考虑 session 的情况下,应该只在内存中保存敏感信息,比如在 service 中的 私有变量,然后提供存储和读取方法。但这样做的缺点是刷新浏览器页面会丢失状态信息,因为应用被重启了。所以如果要记住这个状态的话,是要保留 session 的,而保留 session 对于很多坚持原教旨主义的前后端分离的开发者来说是难以接受,但本质上就是这样。如果要安全的保存,并且支持浏览器刷新后仍保留登录状态,那么 session 仍然需要使用。如果纯粹的前后端分离,那么只能保存在 cookie/localstorage/sessionstorage/indexdb 等本地存储中,但本地存储就是不安全,如果想要提升一些安全性,可以采用加密存储。

0 回复 有任何疑惑可以回复我~
  • 提问者 蝙蝠之殇 #1
    WEB端的话可以在session、storage这些上做处理,那如果是在Angular开发的手机App中呢?
    回复 有任何疑惑可以回复我~ 2019-10-22 23:47:57
  • 接灰的电子产品 回复 提问者 蝙蝠之殇 #2
    你认为存在手机的存储空间就安全吗,前端的这个问题对于 iOS 和 Android 应用来说都是一样的。在开发策略上认为本地存储都是会泄漏的,所以 iOS 提出了 keychain,以操作系统的层面给一个安全存储空间,只不过这个安全存储不是什么都可以储存的,一般用来保存密码或密钥。但本质上,只要存到物理空间就是有风险的,所以利用一些加密算法是必要的。服务器之所以这个问题较为不明显,是由于服务器一般位于防火墙内部,除了某些必要端口,其它不对外开放。
    回复 有任何疑惑可以回复我~ 2019-10-23 00:07:40
  • 提问者 蝙蝠之殇 回复 接灰的电子产品 #3
    这个安全的问题看来真的是一个学问,之前我都没有想的那么深入过
    回复 有任何疑惑可以回复我~ 2019-10-23 00:11:29
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信