public static IServiceCollection UseAuthentication(this IServiceCollection services, AuthOptions tokenOptions)
        {
            var jwtTokenValidator = new JwtSecurityTokenHandler();
            var validator         = new TokenValidator(jwtTokenValidator);

            services.AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            }).AddJwtBearer(options =>
            {
                options.TokenValidationParameters = TokenGenerator.CreateTokenValidationParameters(tokenOptions.SecretKey, tokenOptions.EncryptionKey);
                options.RequireHttpsMetadata      = false;
                //todo refactor to default to true for prod and false for dev
            });
            return(services);
        }