public JWTHandler(IOptions <JWTOptions> options) { Console.WriteLine("JWTHandler called"); _options = options.Value; _issueSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_options.SecretKey)); _signingCredentials = new SigningCredentials(_issueSigningKey, SecurityAlgorithms.HmacSha256); _jwtHeader = new JwtHeader(_signingCredentials); _tokenValidationParameters = new TokenValidationParameters { ValidateAudience = false, ValidIssuer = _options.Issuer, IssuerSigningKey = _issueSigningKey }; }
public static void AddJWT(this IServiceCollection services, IConfiguration configuration, string sectionName = "jwt") { var options = new JWTOptions(); var section = configuration.GetSection("jwt"); section.Bind(options); services.Configure <JWTOptions>(section); services.AddSingleton <IJWTHandler, JWTHandler>(); services.AddAuthentication().AddJwtBearer(cfg => { cfg.RequireHttpsMetadata = false; cfg.SaveToken = true; cfg.TokenValidationParameters = new TokenValidationParameters { ValidateAudience = false, ValidIssuer = options.Issuer, IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(options.SecretKey)) }; }); }