1注册(建立可用账号)--->
2登录
(后端session中存储账号基本信息,
根据配置的时间记录登录的时长,生成一个tocken值,也一起存储到session中,
然后将session的信息都以json返回给前端 ,
之后前端在每次调用后端登录以外的接口时都需要在 request header中存储access_tocken,用于后端拿这个值跟session中存储的值比对验证,
验证一是否是同一个tocken;
验证二解析后和当前时间比较,看是否登录超时,
将账号是否可用这个状态再redis hashmap中存储,
再其他项目中操作账号状态时更新redis hashmap的值,
这样多个项目虽然各自有自己的session,是跟各自的浏览器绑定的,但是redis是共享的,
这里是的jedis客户端,缺点是多线程不安全)
以上的操作方式中,tocken同时干了2件事:
1保存了唯一标识符,保证是同一账号操作,在用户名密码基础上的另一层验证;
2在这个唯一标识tocken中,加上了登录时间值, 每次拿这个时间和当前时间做对比,到配置时间后做登出操作