using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Dough.Models; using Dough.Utilities; using Dough.Models.Database; namespace Dough { public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } private const string MainCorsPolicy = "MainCorsPolicy"; public void ConfigureServices(IServiceCollection services) { services.AddCors(options => { options.AddPolicy(MainCorsPolicy, builder => { builder .AllowAnyHeader() .AllowAnyMethod() .AllowCredentials() .WithOrigins("http://localhost:8080"); }); }); services.AddDbContext(options => { options.UseSqlite("Data Source=database.sqlite"); }); services.AddControllers(); services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options => { options.LoginPath = "/api/account/login"; options.SlidingExpiration = true; options.LogoutPath = "/api/account/logout"; }); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) app.UseDeveloperExceptionPage(); app.UseCors(MainCorsPolicy); app.UseRouting(); app.UseStatusCodePages(); app.UseAuthentication(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); } } }