前端登录流程
1、首次登录,前端调用后端登录接口,发送用户名密码
2、后端收到请求,验证用户名密码。成功,返回给前端token和一个用户信息的值
(token:后台发的唯一标识,用来验证用户是否登录)
3、前端拿到token,将token存储到sessionStorage中,并跳转路由页面
4、前端每次跳转路由,判断cookies中是否有token。没有跳转登录页,有跳转对对应路由首页
5、每次调用后端接口,都要在请求头中加入token【在项目utils/service.js中添加全局拦截器】
6、后端判断请求头中有无token,有则拿到token并验证token。
成功返回数据,失败如:token过期,则前端会返回无效的token,跳转到登录页面并且清除本地用户的信息
【解决token过期】:
- 在请求响应拦截器中拦截,判断token 返回过期后,调用刷新token接口。
- 为了防止多次刷新token,可以通过一个变量isRefreshing 去控制是否在刷新token的状态
- 同时发起两个或者两个以上的请求时,需要借助Promise,刷新token