public static IServiceCollection AddAuth(this IServiceCollection services) { var provider = services.BuildServiceProvider(); var configuration = provider.GetService <IConfiguration>(); if (configuration == null) { throw new NullReferenceException("Не удалось взять конфигурацию из провайдера"); } var jwtConfig = JwtConfiguration.Create(configuration); new AuthConfigurator().ConfigureAuth(services, new SymmetricSecurityKeyGenerator(), jwtConfig); return(services.AddTransient <JwtService>()); }
public void ConfigureAuth(IServiceCollection services, ISecurityKeyGenerator keyGenerator, JwtConfiguration jwtConfiguration) { services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.RequireHttpsMetadata = true; options.TokenValidationParameters = new TokenValidationParameters() { ValidateAudience = true, ValidateIssuer = true, IssuerSigningKey = keyGenerator.Generate(jwtConfiguration.Key), ValidIssuer = jwtConfiguration.Issuer, ValidAudience = jwtConfiguration.MobileAudience, ValidateIssuerSigningKey = true, ValidateLifetime = false }; }); }