前端保存登录状态信息该如何保存???

项目需求用户登录时可选择“记住我”与不勾选(临时登录)
登录成功后由前端来记录用户信息和token,localStorage记录“记住我”状态,sessionStorage记录不勾选状态,当为临时登录时 , 默认5个小时过期,若用户一直操作则以当前时间延后5个小时存入sessionStorage。
但是有个问题 若用户频繁操作 则操作Storage太过频繁,有更好或优化的方法吗

阅读 24.5k
12 个回答

难到楼主不能用cookie

如果频繁操作sessionStoragelocalStorage没有引发性能问题,你可以无需考虑,我认为也不太会引发性能问题,不要过早优化,没有意义。
如果实在想要优化,可以记录下上次操作时间,如果状态值无变化且在既定时间段内则无需操作。

一般都存到Session里了

出于安全考虑应当使用session,因为用户基础信息数据如果保存到前端,除非你有加密,否则很容易就可以伪造。

放到session里比较号,比cookie稍微安全一点

用session的时候,每次退出会自动清除用户储存的信息,当记住密码的时候,用MD5.js进行加密一下,把用户的信息保存到本地即可。

难道不应该是前端登录时发送是否记住我的信息,然后后端保存到session中?

记住我和不勾选,这两个是一个属性的两个状态啊,为什么要存俩地方???

不用一遍一遍的存把,你只需要更新cookie的时间就可以了,懂吗?

一般这个失效期是放在token里的,也就是说这个时间问题暂不需要你去考虑,后端给token一个失效时间就好。然后就是你说的记录状态的问题。是否勾选就做一个判断,勾选了,你就存到localstorage里边,然后不勾选不用存。既然有登陆,那么这个系统必然会有退出。退出的时候你再把localstorage清除,就可以了。这个也不叫性能问题,那个是客户的恶意行为。可以通过一些方式去禁止,完成客户与我们的完美交互。

新手上路,请多包涵

存入cookie或者session中,然后出于安全考虑可以设置一个token的过期时间

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题