/// <summary> /// 重写 Handler 添加自动刷新收取逻辑 /// </summary> /// <param name="context"></param> /// <returns></returns> public override async Task HandleAsync(AuthorizationHandlerContext context) { string url = context.GetCurrentHttpContext().Request.GetRefererUrlAddress(); if (url.Contains("xx.com")) //if (url.Contains("localhost")) { var isAuthenticated = context.User.Identity.IsAuthenticated; var pendingRequirements = context.PendingRequirements; foreach (var requirement in pendingRequirements) { // 授权成功 context.Succeed(requirement); } } else { // 自动刷新 token if (JWTEncryption.AutoRefreshToken(context, context.GetCurrentHttpContext())) { await AuthorizeHandleAsync(context); } else { context.Fail(); // 授权失败 } } }
/// <summary> /// 重写 Handler 添加自动刷新 /// </summary> /// <param name="context"></param> /// <returns></returns> public override async Task HandleAsync(AuthorizationHandlerContext context) { // 自动刷新Token if (JWTEncryption.AutoRefreshToken(context, context.GetCurrentHttpContext(), App.GetOptions <JWTSettingsOptions>().ExpiredTime, App.GetOptions <RefreshTokenSettingOptions>().ExpiredTime)) { await AuthorizeHandleAsync(context); } else { context.Fail(); // 授权失败 DefaultHttpContext currentHttpContext = context.GetCurrentHttpContext(); if (currentHttpContext == null) { return; } currentHttpContext.SignoutToSwagger(); } }