aboutsummaryrefslogtreecommitdiffstats
path: root/src/server/Startup.cs
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2020-08-02 00:04:06 +0200
committerivarlovlie <git@ivarlovlie.no>2020-08-02 00:04:06 +0200
commitc7d72be2d1eed9b7fbfe719752ff800653d8c089 (patch)
tree6c92e3e434bb49efc84a84c3c170a560728df93e /src/server/Startup.cs
parentf055808ca22d3df5e5984a1e27ef6aa49bcc5b9b (diff)
downloaddough-c7d72be2d1eed9b7fbfe719752ff800653d8c089.tar.xz
dough-c7d72be2d1eed9b7fbfe719752ff800653d8c089.zip
change db, set cookie
Diffstat (limited to 'src/server/Startup.cs')
-rw-r--r--src/server/Startup.cs25
1 files changed, 22 insertions, 3 deletions
diff --git a/src/server/Startup.cs b/src/server/Startup.cs
index ad98370..7c7adf0 100644
--- a/src/server/Startup.cs
+++ b/src/server/Startup.cs
@@ -8,6 +8,8 @@ using Microsoft.Extensions.Hosting;
using Dough.Models;
using Dough.Utilities;
using Dough.Models.Database;
+using Microsoft.AspNetCore.CookiePolicy;
+using Microsoft.AspNetCore.Http;
namespace Dough
{
@@ -21,6 +23,16 @@ namespace Dough
public IConfiguration Configuration { get; }
private const string MainCorsPolicy = "MainCorsPolicy";
+ private string GetConnectionStringFromEnvironment()
+ {
+ var host = Configuration.GetValue<string>("DB_HOST");
+ var port = Configuration.GetValue("DB_PORT", "3306");
+ var user = Configuration.GetValue<string>("DB_USER");
+ var password = Configuration.GetValue<string>("DB_PASSWORD");
+ var name = Configuration.GetValue<string>("DB_NAME");
+ return $"Server={host},{port};Database={name};User={user};Password={password}";
+ }
+
public void ConfigureServices(IServiceCollection services)
{
@@ -37,14 +49,21 @@ namespace Dough
});
services.AddDbContext<MainDbContext>(options => {
- options.UseSqlite("Data Source=database.sqlite");
+ options.UseMySql(GetConnectionStringFromEnvironment(), settings =>
+ {
+ settings.EnableRetryOnFailure(3);
+ });
});
services.AddControllers();
- services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
- .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options =>
+ services.AddAuthentication(Constants.AuthenticationScheme)
+ .AddCookie(Constants.AuthenticationScheme, options =>
{
+ options.Cookie.Name = "dough_session";
+ options.Cookie.HttpOnly = true;
+ options.Cookie.SameSite = SameSiteMode.Strict;
+ options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest;
options.LoginPath = "/api/account/login";
options.SlidingExpiration = true;
options.LogoutPath = "/api/account/logout";