예제 #1
0
        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);
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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));
        }