public async Task HandleAsync(AuthorizationHandlerContext context)
        {
            var res = new TokenRes();

            res = (TokenRes)TokenExists((AuthorizationFilterContext)context.Resource);
            if (res.IsToken)
            {
                var validd = await ValidateTokenAsync(res.Token);

                if (validd)
                {
                    return;
                }
            }
            context.Fail();
        }
        private object TokenExists(HttpContext context)
        {
            var    tokenres   = new TokenRes();
            string authHeader = context.Request.Headers["Authorization"];

            if (!String.IsNullOrEmpty(authHeader) && authHeader.Contains(""))
            {
                var token = authHeader.Contains("Bearer") ? authHeader.Replace("Bearer", "") : authHeader.Replace("bearer", "");
                tokenres = new TokenRes {
                    Token = token, IsToken = true
                };


                return(tokenres);
            }
            tokenres = new TokenRes {
                Token = "", IsToken = false
            };
            return(tokenres);
        }
        public async Task Invoke(HttpContext context)
        {
            var res = new TokenRes();

            res = (TokenRes)TokenExists(context);
            if (res.IsToken)
            {
                if (!await ValidateTokenAsync(res.Token))
                {
                    context.Response.StatusCode = 401; //UnAuthorized
                    return;
                }
            }
            else
            {
                context.Response.StatusCode = 400;  //Bad Request
                return;
            }
            await _next.Invoke(context);
        }