目录
结合请求拦截和响应拦截实现双token机制
笔者从一开始写博客就说明了本项目将使用双token机制,大大满足用户体验以及用户账号信息的安全性能。
但是笔者在之前的测试中,与负责后端的同学交流过,先用单token机制进行测试 —— 因为双token机制实现起来就是对请求拦截和响应拦截进行丰富。 笔者在之前也曾说过,拦截什么的实现逻辑完全可以放在项目接近尾声的时候进行实现。故话不多说,且看下文。
实现双token机制流程
- 修改原登录设置单token的逻辑 —— 在登录成功后,将双token存储下来。
- 回顾之前的请求拦截器和响应拦截器。 从下图的博客可以看到:
(1)笔者之前的请求拦截器就是直接在发送的所有请求的请求头上加上token字段。显然这是不对的,因为登录请求的请求头是不需要该字段的。
此外因为要实现双token机制,由于向服务器发起获取新的双token是需要将refreshToken作为请求头发送出去的。
(2)笔者之前的响应拦截器几乎没做什么拦截,只要状态码是200的则放行,而其他状态码则给用户提示出了什么错误。
而为了实现双token机制,则需要拦截accessToken过期的状态码,然后用refreshToken当作请求头向服务器发起获取新的双token的请求,这里有两种情况&