public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } string secretKey = Configuration["JwtBearer:SigningKey"]; SymmetricSecurityKey signingKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(secretKey)); app.UseMiddleware <TokenProviderMiddleware>(); app.UseJwtBearerAuthentication(new JwtBearerOptions { AuthenticationScheme = JwtBearerAuthentication.AuthenticationScheme, TokenValidationParameters = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = signingKey, ValidateIssuer = true, ValidIssuer = Configuration["JwtBearer:Issuer"], ValidateAudience = true, ValidAudience = Configuration["JwtBearer:Audience"] } }); app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationScheme = CookieAuthentication.AuthenticationScheme }); ExternalAuthenticationEvents googleAuthenticationEvents = new ExternalAuthenticationEvents( new GoogleExternalAuthenticationManager(app.ApplicationServices.GetRequiredService <UserService>())); app.UseGoogleAuthentication(c => { c.SignInScheme = CookieAuthentication.AuthenticationScheme; c.ClientId = Configuration["Authentication:Google:ClientId"]; c.ClientSecret = Configuration["Authentication:Google:ClientSecret"]; c.Events = new OAuthEvents { OnCreatingTicket = googleAuthenticationEvents.OnCreatingTicket }; c.AccessType = "offline"; }); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller}/{action}/{id?}", defaults: new { controller = "Home", action = "Index" }); routes.MapRoute( name: "spa-fallback", template: "Home/{*anything}", defaults: new { controller = "Home", action = "Index" }); }); app.UseStaticFiles(); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); app.UseApplicationInsightsRequestTelemetry(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseBrowserLink(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseApplicationInsightsExceptionTelemetry(); string secretKey = Configuration["JwtBearer:SigningKey"]; SymmetricSecurityKey signingKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(secretKey)); app.UseJwtBearerAuthentication(new JwtBearerOptions { AuthenticationScheme = JwtBearerAuthentication.AuthenticationScheme, TokenValidationParameters = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = signingKey, ValidateIssuer = true, ValidIssuer = Configuration["JwtBearer:Issuer"], ValidateAudience = true, ValidAudience = Configuration["JwtBearer:Audience"] } }); app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationScheme = CookieAuthentication.AuthenticationScheme }); ExternalAuthenticationEvents githubAuthenticationEvents = new ExternalAuthenticationEvents( new GithubExternalAuthenticationManager(app.ApplicationServices.GetRequiredService <UserService>())); app.UseGitHubAuthentication(o => { o.SignInScheme = CookieAuthentication.AuthenticationScheme; o.ClientId = Configuration["Authentication:Github:ClientId"]; o.ClientSecret = Configuration["Authentication:Github:ClientSecret"]; o.Scope.Add("user"); o.Scope.Add("user:email"); o.Events = new OAuthEvents { OnCreatingTicket = githubAuthenticationEvents.OnCreatingTicket }; }); app.UseStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); }