diff --git a/LiteCharms.Features/Extensions/Api.cs b/LiteCharms.Features/Extensions/Api.cs index 28a8ca1..84c087d 100644 --- a/LiteCharms.Features/Extensions/Api.cs +++ b/LiteCharms.Features/Extensions/Api.cs @@ -27,7 +27,7 @@ public static class Api .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme) .AddOpenIdConnect(OpenIdConnectDefaults.AuthenticationScheme, options => { - options.Authority = authOptions.Authority; + options.Authority = authOptions.Authority; options.ClientId = authOptions.ClientId; options.ClientSecret = authOptions.ClientSecret; @@ -102,16 +102,15 @@ public static class Api }); }); - app.MapGet("/logout", async (HttpContext context, IHttpClientFactory httpClientFactory, IOptions settings) => + app.MapGet("/logout", async (HttpContext context) => { - await context.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); + var schemesToSignOut = new[] { CookieAuthenticationDefaults.AuthenticationScheme, OpenIdConnectDefaults.AuthenticationScheme, }; - string currentBaseUrl = $"https://{context.Request.Host}{context.Request.PathBase}/"; + string postLogoutRedirectDestination = "/"; - await context.SignOutAsync(OpenIdConnectDefaults.AuthenticationScheme, new AuthenticationProperties - { - RedirectUri = currentBaseUrl, - }); + await context.SignOutAsync(scheme: null, properties: new AuthenticationProperties { RedirectUri = postLogoutRedirectDestination, }); + + foreach (var scheme in schemesToSignOut) await context.SignOutAsync(scheme); }); return app;