空箱补货

This commit is contained in:
qianhao.xu
2024-11-04 10:15:34 +08:00
parent b31e8c76e9
commit f664b5beac
9 changed files with 233 additions and 137 deletions

View File

@@ -24,19 +24,29 @@ namespace DOAN.Admin.WebApi.Filters
/// <param name="context"></param>
public void OnAuthorization(AuthorizationFilterContext context)
{
#region AllowAnonymousAttribute
var noNeedCheck = false;
if (context.ActionDescriptor is ControllerActionDescriptor controllerActionDescriptor)
{
noNeedCheck = controllerActionDescriptor.MethodInfo.GetCustomAttributes(inherit: true)
.Any(a => a.GetType().Equals(typeof(AllowAnonymousAttribute)));
.Any(a => a.GetType().Equals(typeof(AllowAnonymousAttribute)));
}
if (noNeedCheck) return;
#endregion
#region IP地址
string ip = HttpContextExtension.GetClientUserIp(context.HttpContext);
string url = context.HttpContext.Request.Path;
var isAuthed = context.HttpContext.User.Identity.IsAuthenticated;
string osType = context.HttpContext.Request.Headers["os"];
#endregion
#region JWT令牌验证
//使用jwt token校验2020-11-21
TokenModel loginUser = JwtUtil.GetLoginUser(context.HttpContext);
if (loginUser != null)
@@ -44,7 +54,7 @@ namespace DOAN.Admin.WebApi.Filters
var nowTime = DateTime.UtcNow;
TimeSpan ts = loginUser.ExpireTime - nowTime;
//Console.WriteLine($"jwt到期剩余{ts.TotalMinutes}分,{ts.TotalSeconds}秒");
Console.WriteLine($"jwt到期剩余{ts.TotalMinutes}分,{ts.TotalSeconds}秒");
var CK = "token_" + loginUser.UserId;
if (!CacheHelper.Exists(CK) && ts.TotalMinutes < 5)
@@ -61,12 +71,21 @@ namespace DOAN.Admin.WebApi.Filters
context.HttpContext.Response.Headers.Add("X-Refresh-Token", newToken);
}
}
#endregion
#region
if (loginUser == null || !isAuthed)
{
string msg = $"请求访问[{url}]失败,无法访问系统资源";
//logger.Info(msg);
context.Result = new JsonResult(ApiResult.Error(ResultCode.DENY, msg));
}
#endregion
}
}
}