// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddControllers(); var jwtConfig = new JwtConfig(); Configuration.GetSection("JwtConfig").Bind(jwtConfig); services.Configure <JwtConfig>(Configuration.GetSection("JwtConfig")); services.AddJwtTokens(jwtConfig); services.AddSwagger(); }
public static IServiceCollection AddJwtTokens(this IServiceCollection services, JwtConfig jwtConfig) { services.AddAuthentication(option => { option.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; option.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = false, ValidateIssuerSigningKey = true, ValidIssuer = jwtConfig.Issuer, ValidAudience = jwtConfig.Audience, IssuerSigningKey = new SymmetricSecurityKey(Convert.FromBase64String(jwtConfig.Secret)) }; }); return(services); }