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

  1. 用户发出登录请求,带着用户名和密码到服务器经行验证,服务器验证成功就在后台生成一个token返回给客户端
  2. 客户端将token存储到cookie中,服务端将token存储到redis中,可以设置存储token的有效期。
  3. 后续客户端的每次请求资源都必须携带token,这里放在请求头中,服务端接收到请求首先校验是否携带token,以及token是否和redis中的匹配,若不存在或不匹配直接拦截返回错误信息(如未认证)。

token

出于安全考虑应当使用session,因为用户基础信息数据如果保存到前端,除非你有加密,否则很容易就可以伪造。用session的时候,每次退出会自动清除用户储存的信息,当记住密码的时候,用MD5.js进行加密一下,把用户的信息保存到本地即可。

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

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