From 253c8479b9ae0ba6853a70728d3f6e904e1ac2ba Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Sun, 23 Jan 2022 22:28:55 +0100 Subject: feat: WIP: Add option to login in with github --- src/server/Startup.cs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'src/server/Startup.cs') diff --git a/src/server/Startup.cs b/src/server/Startup.cs index 4b7c097..4ad70fc 100644 --- a/src/server/Startup.cs +++ b/src/server/Startup.cs @@ -1,3 +1,5 @@ +using AspNet.Security.OAuth.GitHub; + namespace IOL.BookmarkThing.Server; public class Startup @@ -67,7 +69,10 @@ public class Startup options.WaitForJobsToComplete = true; }); - services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) + services.AddAuthentication(options => { + options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme; + options.DefaultChallengeScheme = GitHubAuthenticationDefaults.AuthenticationScheme; + }) .AddCookie(options => { options.Cookie.Name = "bookmarkthing_session"; options.Cookie.SameSite = SameSiteMode.Strict; @@ -81,6 +86,18 @@ public class Startup return Task.FromResult(null); }; }) + // TODO: Handle github claims, current behaviour creates entries with user_id set to default guid :D + .AddGitHub(options => { + options.ClientSecret = Configuration.GetValue("GH_CLIENT_SECRET"); + options.ClientId = Configuration.GetValue("GH_CLIENT_ID"); + options.SaveTokens = true; + options.CorrelationCookie = new CookieBuilder { + Name = "gh_corr", + SameSite = SameSiteMode.Lax, + SecurePolicy = CookieSecurePolicy.Always, + HttpOnly = true, + }; + }) .AddScheme(Constants.BASIC_AUTH_SCHEME, default); services.AddLogging(); -- cgit v1.3