实现Token过期自动刷新中间件

第一步:创立refreshToken中间件

public async Task InvokeAsync(HttpContext context)
        {
            JwtSecurityToken token = null;
            string authorization = context.Request.Headers["Authorization"];

            if (!string.IsNullOrEmpty(authorization)
            && authorization.StartsWith("Bearer "))
                token = new JwtSecurityTokenHandler().
                ReadJwtToken(authorization.Substring("Bearer ".Length));

            //刷新Token
            if (token != null
            && token.ValidTo > DateTime.UtcNow
            && token.ValidTo.AddMinutes(-5) <= DateTime.UtcNow)
            {
                context.Response.Headers.Add("X-Refresh-Token", await RefreshTokenAsync(token));
            }

            await next(context);
        }

第二步:再axios插件的Response拦截器中解决HttpResponse中携带的新token

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年3月8日 下午3:29
下一篇 2023年4月8日 下午2:12

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信