1.背景
后端使用的是.net core 加jwt的形式。然后为了不过期使用了双token的模式。
认证方式是Bearer 头文件里必须加Authorization,目前还没弄懂怎么改变这个头文件。
2.实现方式
因为用的.net core自带的认证方式,不是自己定义的拦截器,所以每次认证都是需要传Authorization。
第一步:登录的时候传token和refreshToken到前端。
第二步:token过期,后端返回401给前端,前端接收到401,重新再获取请求。
并将保存在本地的refreshToken赋值给Authorization,并在头文件里加上type=refreshToken
第三步:如果refreshToken没有过期,重新生成Token和refreshToken返回给前台,重新赋值。
如果refresh Token已经过去,后台在头文件里加type=refreshToken并返回401,表示跳转到登录页面。
3.后记
这种方式当然不是最好的,我查的资料感觉大多也是自定义的拦截器。IdentityServer4好像很符合要求。但认证方式太多,还没完全弄懂,下次再做个好的笔记了。