// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddSession(options => { options.IdleTimeout = TimeSpan.FromMinutes(2); }); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0); services.AddControllers(); services.AddSignalR().AddMessagePackProtocol(); services.AddCors(options => { options.AddDefaultPolicy(builder => { builder .WithOrigins( "http://localhost") .AllowCredentials() .AllowAnyHeader() .SetIsOriginAllowed(_ => true) .AllowAnyMethod(); }); }); ExtractServices.ExtractChatServices(services); var SecretKey = Encoding.ASCII.GetBytes(Configuration.GetSection("AppSettings:Token").Value); services.AddAuthentication(auth => { auth.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; auth.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(token => { token.RequireHttpsMetadata = false; token.SaveToken = true; token.TokenValidationParameters = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(SecretKey), ValidateIssuer = true, //Usually this is your application base URL - JRozario ValidIssuer = "https://localhost:44319/", ValidateAudience = true, //Here we are creating and using JWT within the same application. In this case base URL is fine - JRozario //If the JWT is created using a web service then this could be the consumer URL - JRozario ValidAudience = "https://localhost:44319/", RequireExpirationTime = true, ValidateLifetime = true, ClockSkew = TimeSpan.Zero }; }); services.AddMvc(option => option.EnableEndpointRouting = false); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { // services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) //.AddJwtBearer(options => //{ // options.TokenValidationParameters = new TokenValidationParameters // { // ValidateIssuer = true, // ValidateAudience = true, // ValidateLifetime = true, // ValidateIssuerSigningKey = true, // ValidIssuer = Configuration["Jwt:Issuer"], // ValidAudience = Configuration["Jwt:Issuer"], // IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:Key"])) // }; //}); //services.AddMvc(); services.AddControllers(); services.AddSignalR().AddMessagePackProtocol(); services.AddCors(options => { options.AddDefaultPolicy(builder => { builder .WithOrigins( "http://localhost") .AllowCredentials() .AllowAnyHeader() .SetIsOriginAllowed(_ => true) .AllowAnyMethod(); }); }); ExtractServices.ExtractChatServices(services); services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(Configuration.GetSection("AppSettings:Token").Value)), ValidateIssuer = false, ValidateAudience = false }; }); services.AddMvc(option => option.EnableEndpointRouting = false); }