Exemplo n.º 1
0
        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
         };
     });
 }