private JsonWebToken ReadToken() { // 获取 token var accessToken = _httpContextAccessor.GetJwtToken() ?? throw Oops.Oh(1001); // 验证token var(IsValid, Token) = JWTEncryption.Validate(accessToken, _jwtSettings); if (!IsValid) { throw Oops.Oh(1001); } return(Token); }
/// <summary> /// 验证 Jwt 授权 /// </summary> /// <param name="context"></param> /// <param name="httpContext"></param> /// <param name="token"></param> /// <returns></returns> public static bool ValidateJwtBearer(this AuthorizationHandlerContext context, HttpContext httpContext, out JsonWebToken token) { // 获取 token var accessToken = httpContext.GetJwtToken(); if (string.IsNullOrEmpty(accessToken)) { token = null; return(false); } // 验证token var(IsValid, Token) = JWTEncryption.Validate(accessToken, httpContext.RequestServices.GetService <IOptions <JWTSettingsOptions> >().Value); token = IsValid ? Token : null; return(IsValid); }
/// <summary> /// 请求管道 /// </summary> /// <param name="context"></param> /// <param name="httpContext"></param> /// <returns></returns> public override bool Pipeline(AuthorizationHandlerContext context, DefaultHttpContext httpContext) { // 获取 token var accessToken = httpContext.GetJWTToken(); if (string.IsNullOrEmpty(accessToken)) { return(false); } // 验证token var(IsValid, _) = JWTEncryption.Validate(accessToken, App.GetOptions <JWTSettingsOptions>()); if (!IsValid) { return(false); } // 检查权限 return(CheckAuthorzie(httpContext)); }